我的html表格中有这个脚本
<button type="button" id="addUploadFile">Add Document</button>
<input type="file" id="hiddenOpenFile" name="hiddenOpenFile" style="visibility:hidden;" />
<button type="button" id="button2">test</button>
和准备好功能的javascript脚本
$("#addUploadFile").live('click', function () {
$('#hiddenOpenFile').trigger('click');
});
$("#hiddenOpenFile").live('change', function (event) {
alert(1);
$("#addbutton2").trigger('click');
});
$("#addbutton2").live('click', function () {
alert(2)
});
问题是,当我选择任何文件时,Internet Explorer警报(2)没有出现。它在任何其他浏览器上都非常有用。
答案 0 :(得分:1)
你错过了分号。
尝试:
alert(2);
你应该将addbutton2更改为button2。没有它,它甚至不会在Chrome中运行。 您正在触发的单击事件似乎在IE中不会触发。使用自定义事件应该修复它。例如:
$("#button2").trigger('gogogo');
然后绑定到'gogogo':
$("#button2").on('gogogo', function () {
alert(2);
});
看到这个小提琴:http://jsfiddle.net/UfRUa/3/
答案 1 :(得分:0)
您应该将第二个按钮ID从button2
更改为addbutton2
单击addUploadFile按钮后,文件上传器弹出apears。选择文件并关闭弹出窗口。在这种情况下,hiddenOpenFile的change事件将触发并在addbutton2的click事件之后
工作正常:
<html>
<head>
<script src="../libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<button type="button" id="addUploadFile">Add Document</button>
<input type="file" id="hiddenOpenFile" name="hiddenOpenFile" style="visibility:hidden;" />
<button type="button" id="addbutton2">test</button>
<script>
$("#addUploadFile").live('click', function () {
$('#hiddenOpenFile').trigger('click');
});
$("#hiddenOpenFile").live('change', function (event) {
alert(1);
$("#addbutton2").trigger('click');
});
$("#addbutton2").live('click', function () {
alert(2);
});
</script>
</body>
</html>
的 UPD:强> 的
据我所知$ .live()不支持IE中的“更改”事件:
阅读文档http://docs.jquery.com/Events/live
的评论尝试使用livequery代替?