为什么浏览器不一致地呈现错误排序的jQuery?

时间:2014-05-23 01:15:25

标签: javascript jquery cross-browser

上下文:

我最近执行了一个jQuery代码块,其中我在事件之前错误地应用了事件处理程序。该代码的目标是在更改事件上生成一个警告框。

观察:

在我的结尾,警报框没有在最新版本的FF,Chrome和IE中执行。其他StackOverflow成员(通过在线聊天和another question)向我确认警报框在他们的末端(跨越各种浏览器)执行,而其他人观察到警报框没有。

代码:

代码编码错误:

//Event handler
$('#b').val($('#a').val()).change();
//Event
$('#b').on('change', function() {
    alert("Change event fired on load.");
});

JSFiddle:http://jsfiddle.net/clarusdignus/rHYLM/

正确排序的代码:

//Event
$('#b').on('change', function() {
    alert("Change event fired on load.");
});
//Event handler
$('#b').val($('#a').val()).change();

JSFiddle:http://jsfiddle.net/clarusdignus/rHYLM/4/

我的问题:

为什么浏览器在错误排序的事件处理程序和事件方面不一致地呈现不正确的jQuery?

1 个答案:

答案 0 :(得分:2)

根据w3标准,更改事件应按bubble顺序传播。除了IE< 9之外,所有这些都会这样做 可能这就是为什么在更改事件的触发方面存在不一致的原因。