事件执行顺序

时间:2015-03-25 08:44:12

标签: javascript jquery

jQuery中两个或更多change个事件的执行顺序是什么?

$('#el').change(fn1);
$('#el').change(fn2);
$('#el').change(fn3);

我想确保当我更改el的值时,change事件将按照确切的顺序执行:fn1fn2,{{ 1}}。

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
   });
});