javascript - 事件执行顺序

标签 javascript jquery

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

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

我想确保当我更改 el 的值时,change 事件将以准确的顺序执行:fn1 , fn2, fn3.

最佳答案

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

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

关于javascript - 事件执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29250968/

相关文章:

javascript - 尝试从端点读取数据并使用该数据创建组件

jQuery 移动 : Docytype and Header information required per page?

javascript - jQuery 生成 div

javascript - jquery - 翻译国家名称并对其进行排序

javascript - 如何只渲染部分 View 的特定部分?

javascript - 如何使用模板中的 Knockout 映射插件映射到来自服务器对象的数组?

javascript - "$75.00"转换为 "75.00"JQuery 或 Javascript

php - 限制每秒/分钟发送联系表单电子邮件

jquery - 高度为 100% 的 ScrollTop 元素

javascript - 弹出新窗口后滚动顶部。 -Jquery