你遇到过IE7的bug吗?
<input type="file" id="xxx">
<script>
$('#xxx').change(function(){ alert(1) })
</script>
当我点击输入&选择一个文件,警报框第一次显示。然后我点击主体上的空白区域,警报框再次显示。即使我使用JQuery 1.6(目前最新的)将change事件绑定到input:file时,也会发生这种情况。
我怎样才能用最简单的方法来防止这种情况呢?谢谢你的建议!
这是我经过几个小时的脑力激荡后的成果:
$('input:file').click(
function(){
$(this).one(
'change',
function(){ alert(1) /*do stuff here*/ }
)
}
)
每次用户点击输入选择文件时,我们将事件"change"绑定一次。因此,每当用户想要选择一个文件时,该事件就会触发一次。
感谢上帝,它有效!谢谢大家。
我只会在函数运行后取消绑定触发器