jQuery:同一事件的多个处理程序

2022-08-30 04:05:38

如果将两个事件处理程序绑定到同一元素的同一事件,会发生什么情况?

例如:

var elem = $("...")
elem.click(...);
elem.click(...);

最后一个处理程序是“获胜”,还是两个处理程序都将运行?


答案 1

两个处理程序都将运行,jQuery事件模型允许在一个元素上使用多个处理程序,因此后面的处理程序不会覆盖较旧的处理程序。

处理程序将按照绑定它们的顺序执行


答案 2

假设您有两个处理程序 fg,并且想要确保它们以已知且固定的顺序执行,然后只需封装它们:

$("...").click(function(event){
  f(event);
  g(event);
});

这样(从jQuery的角度来看)只有一个处理程序,它以指定的顺序调用fg