Jquery触发器点击不适用于mac,Ipad和Iphone中的safari浏览器

Man*_*ola 12 iphone safari jquery webkit ipad

我试图在单击另一个按钮时触发输入类型="文件"上的单击事件.

演示:http://jsfiddle.net/Y85g6/

它在所有浏览器中都运行良好,除了在mac,Ipad和Iphone中的safari浏览器.

有什么技巧可以完成这项任务吗?

小智 14

而不是trigger("click")您可以使用以下代码在所有浏览器中成功运行:

var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true); 
document.getElementById(elem_id).dispatchEvent(evt);
Run Code Online (Sandbox Code Playgroud)


Man*_*ola 6

找到了替代方案.

只需type="file"通过绝对定位将输入放在自定义按钮上,然后使用jQuery fadeTo('fast',0)它来隐藏它.

现在,如果我们点击自定义按钮文件浏览器窗口出现.

它在所有桌面浏览器中工作,但不在iPhone&中,iPad因为它们不允许上传任何文件.

  • jQuery只是将不透明度设置为0. CSS可能比使用jQuery动画更合适 (2认同)

raj*_*ft1 5

使元素可见,因为触发事件不适用于mac safari中的隐藏元素.