jQuery触发器在Safari中不工作

jQuery触发器在Safari中不工作,jquery,safari,Jquery,Safari,我有一个输入类型的文件,我设置它显示无,并使用其他按钮触发它 我在每一个浏览器上都进行了测试,除了Safari之外,其他浏览器都可以正常工作 $("#file_button").click(function () { $("#image").trigger('click'); }); 这是一个非常常见的问题,尽管实现这一点的正确跨浏览器方法是使输入类型=“文件”透明,并绝对位于所需单击元素的上方 大概是这样的: <div class="file-wrap"> <s

我有一个输入类型的文件,我设置它显示无,并使用其他按钮触发它

我在每一个浏览器上都进行了测试,除了Safari之外,其他浏览器都可以正常工作

$("#file_button").click(function () {
    $("#image").trigger('click');
});

这是一个非常常见的问题,尽管实现这一点的正确跨浏览器方法是使
输入类型=“文件”
透明,并绝对位于所需单击元素的上方

大概是这样的:

<div class="file-wrap">
  <span>Click me</span>
  <input type="file" />
</div>
这样,用户认为他们在点击你设计的span,但你一直在偷偷摸摸地把你的文件输入放在上面


快速提示:不要将其放入
-IE不喜欢这样,在解析页面时会完全删除
input type=“file”
,并且没有错误消息。

我认为这可能是浏览器的安全功能。我知道
文件
输入在编程方面受到很大限制。但是每个浏览器输入类型的文件宽度、高度和位置都是不同的。但通常如果您添加
top:0;左:0;底部:0;右:0;宽度:100%;身高:100%结果很好。这是目前的标准技术。有关示例,请参见的源代码。对于巨大的按钮,它们使用多个文件输入。
.file-wrap{
  position: relative;
}
input[type="file"]{
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}