事件执行顺序

佐尔齐克

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

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

我想,以确保当我改变的值el,该change事件将会在精确的顺序执行:fn1fn2fn3

穆罕默德里亚斯

回调函数将按照注册的顺序执行:

  <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"

演示

更好的解决方案是:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章