0

我的 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 alert(2) 没有出现。它在任何其他浏览器上都非常有效。

4

2 回答 2

1

您缺少分号。

尝试:

 alert(2);

您应该将 addbutton2 更改为 button2。没有这个,它甚至无法在 Chrome 中运行。您触发的点击事件似乎没有在 IE 中触发。使用自定义事件应该可以解决它。例如:

  $("#button2").trigger('gogogo');

然后绑定到'gogogo':

  $("#button2").on('gogogo', function () {
    alert(2);
  });

看到这个小提琴:http: //jsfiddle.net/UfRUa/3/

于 2012-05-10T06:57:01.283 回答
0

单击 addUploadFile 按钮后,您应该将第二个按钮 id 从更改button2为文件上传器弹出窗口。addbutton2选择文件并关闭弹出窗口。?在这种情况下,hiddenOpenFile 的更改事件将触发,然后添加按钮 2 的单击事件

它工作正常:

<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>

升级版:

据我所知 $.live() 不支持 IE 中的“更改”事件:

阅读对文档http://docs.jquery.com/Events/live的评论

尝试改用livequery吗?

于 2012-05-10T08:45:39.123 回答