<a href="javascript:void(0)" id="select-handler">select</a>
<input type="file" id="real-file-input" style="display:none" />

$('#select-handler').click(function(){
    $('#real-file-input').click();
});

$('#real-file-input').bind('propertychange', function(){
    alert('changed');
});

奇怪的是,当我使用.click()时,不会触发propertychange

最佳答案

实际上,对于我来说,您的代码在 IE7和8 中都可以正常工作,每当我更改input type ='file'的值时,就会触发警报。而在> IE9 版本中不起作用。

paulbakaus's blog on propertychange on Internet Explorer 9



许多开发人员面临着相同的怪异行为。

为什么要使用仅Internet Explorer支持的onpropertychange

我宁愿继续使用 change 事件处理程序

$('#real-file-input').bind('change', function(){
    alert('changed');
});

或如果它是 HTML5 ,则为 input 事件处理程序。
$('#real-file-input').bind('input', function(){
    alert('changed');
});

关于javascript - IE on属性更改事件不会触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18436424/

10-12 00:51