从 jQuery 1.9 开始,文件选择更改事件在旧版 Firefox 中不再冒泡/传播。它在 jQuery 1.8 中很好,但在 jQuery 1.9 中停止工作。
这是一个例子:
<ul class="result"></ul>
<div class="wrapper">
<input class="file_input" name="file" type="file" />
</div>
<script>
$('.wrapper').on('change', '.file_input', function() {
$('.result').append('<li>file selected</li>');
});
</script>
这是一个使用 jQuery 1.8 的小提琴,它演示了我期望该行为如何工作:
在所有浏览器(包括 Firefox 3.6)中,每次我选择一个文件时, input[type=file] 元素上的 change 事件都会冒泡。
这是使用 jQuery 1.9 的相同示例。使用 Firefox 3.6,更改事件不再冒泡。不过,它似乎在 Firefox 18+ 中运行良好:
这让我想到了两个问题:
1) 哪个版本的 Firefox 停止工作?
2)有没有办法解决这个问题?