Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么浏览器不一致地呈现顺序不正确的jQuery? 背景:_Javascript_Jquery_Cross Browser - Fatal编程技术网

Javascript 为什么浏览器不一致地呈现顺序不正确的jQuery? 背景:

Javascript 为什么浏览器不一致地呈现顺序不正确的jQuery? 背景:,javascript,jquery,cross-browser,Javascript,Jquery,Cross Browser,我最近执行了一个jQuery代码块,在该代码块中,我在事件发生之前错误地应用了事件处理程序上的位置。代码的目标是生成一个变更事件的警报框 观察: 在我这方面,在FF、Chrome和IE的最新版本中,警报框没有执行。其他StackOverflow成员(通过实时聊天和)向我确认警报框在他们这方面执行(跨各种浏览器),而其他人观察到警报框没有执行 代码: 顺序错误的代码: //Event handler $('#b').val($('#a').val()).change(); //Event $('#

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

观察: 在我这方面,在FF、Chrome和IE的最新版本中,警报框没有执行。其他StackOverflow成员(通过实时聊天和)向我确认警报框在他们这方面执行(跨各种浏览器),而其他人观察到警报框没有执行

代码: 顺序错误的代码:

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

正确排序的代码:

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

我的问题:
为什么浏览器对于顺序不正确的事件处理程序和事件不一致地呈现不正确的jQuery

根据w3标准,更改事件应按气泡顺序传播。除IEF外,所有执行此操作的成员都不会触发
.change()
事件,因为您在下一行绑定处理程序之前运行它。这些其他成员知道要查找什么警报吗?当页面加载时,用户是否期望它?他们测试正确吗?其他用户说他们经历了什么并不重要。你发现了什么?这有时对你有效,有时对你无效吗?有人能解释为什么这个问题被否决了两次吗?我的问题与JSFIDLE如何不一致地选择生成和不生成警报的行为有关。这是一个合理的问题,到目前为止,还没有得到直接的回答,也不能与我所联系的问题相混淆。@cookiemonster-肯定的,肯定的,肯定的。我已经在我的问题中概述了你第四个问题的答案,至于第五个问题,我的结果是一致的,因为警告框从未出现过。除此之外,我承认你关于不依赖他人发现的观点。谢谢你的建议。@ClarusDignus见更新答案