jQuery,如何影响绑定事件的运行顺序?

时间:2018-05-05 11:48:18

标签: jquery

说,我有两个提交事件:

$('form').submit(function() {
    console.log('1');
});

$('form').submit(function() {
    console.log('2');
});

提交时,我当然会得到1, 2。如何获得2, 1?第二个附加事件怎么可能是第一个?我不能把两个函数合二为一,因为它是第三个库。第二次提交影响第一次

2 个答案:

答案 0 :(得分:1)

  

我不能把两个函数合二为一,因为它是第三个库。第二次提交影响第一次

这很不幸,因为这是解决问题的最佳方法。

  

如何获得2,1?

首先附加第二个处理程序。

  

第二个附加事件怎么可能是第一个?

你不能。* jQuery按照它们附加的顺序运行处理程序。如果第一个处理程序是使用委托附加的,那么您可以在它前面,但如果它是如图所示直接附加的话,则不能。但

*你不能合理地。你可以通过黑客攻击jQuery内部,因为jQuery维护自己的事件处理程序列表。但内部可以随着每个jQuery“点”版本(例如,v3.3.1 => v3.3.2)而发生变化,恕不另行通知,因此这样做很脆弱......

答案 1 :(得分:0)

如果你把一个放在另一个里怎么办?

$('form').submit(function() {
  console.log('2');

  $('form').submit(function() {
      console.log('1');
  }).submit();
});

https://api.jquery.com/submit/