jQuery中两个或更多change
个事件的执行顺序是什么?
$('#el').change(fn1);
$('#el').change(fn2);
$('#el').change(fn3);
我想确保当我更改el
的值时,change
事件将按照确切的顺序执行:fn1
,fn2
,{{ 1}}。
答案 0 :(得分:1)
回调函数将按照它们的注册顺序执行:
<input type="text" id="element">
在JS中:
$(function() {
$("#element").change(function() {
console.log("first"+this.value);
});
$("#element").change(function() {
console.log("second"+this.value);
});
$("#element").change(function() {
console.log("third"+this.value);
});
});
随着价值的变化:
"first1"
"second1"
"third1"
<强> DEMO 强>
更好的解决方案是:
function fn1() {
// do something
}
function fn2() {
// do something
}
function fn3() {
// do something
}
在您的事件处理程序中:
$("#el").change(function() {
$.when(fn1).then(fn2).then(fn3).done(function(){
// all done
});
});