我正在使用jQuery File Upload 插件。我正在隐藏文件输入并在单击单独的按钮时激活它。(见这个小提琴。)
HTML:
<div>
<button class="browse">Browse</button>
<input id="upload" type="file" style="display: none;" />
</div>
JavaScript:
var element = $("#upload");
$(".browse").click(function () {
$("#upload").trigger("click");
});
element.fileupload({
add: function () {
alert("add");
}
});
请注意,如果您按下按钮然后选择一个文件,该add
方法将被激活并且您将收到警报。再做一次,你会得到另一个警报。
现在,看看这个小提琴。唯一的区别是我更改了以下行
$("#upload").trigger("click");
至
element.trigger("click");
请注意,现在,当您第一次单击按钮然后选择文件时,该add
方法被激活并且您会收到警报(就像以前一样),但如果您再次执行此操作,该add
方法将永远不会激活。
是什么导致了这种行为差异?