解决IE7错误"输入类型=文件"onchange fire两次?

van*_*con 5 jquery events input onchange internet-explorer-7

你有没有遇到这个IE7的错误:

<input type="file" id="xxx">

<script> 
     $('#xxx').change(function(){ alert(1) })
</script>
Run Code Online (Sandbox Code Playgroud)

当我单击输入并选择一个文件时,警告框第一次显示.然后我点击身体上的空白区域,警报框再次显示.即使我将更改事件绑定到带有JQuery 1.6的input:file(此时最新),也会发生这种情况.

我怎么能以最简单的方式阻止这种情况?谢谢你的所有建议!

van*_*con 6

这是我经过一段时间的"头脑风暴"后所做的:

$('input:file').click(
    function(){
         $(this).one(
              'change',
              function(){ alert(1) /*do stuff here*/ }
         )
    }
)
Run Code Online (Sandbox Code Playgroud)

每次用户单击输入以选择文件时,我们将事件"更改"绑定一次.因此,每当用户想要选择文件时,事件就会触发一次.

感谢上帝,它有效!谢谢你们.