0

假设一个 dom 元素我有超过 2 个live绑定(或delegate就此而言)。(一个或多个可能来自我使用的 jquery 插件),哪一个得到偏好。

$(selector).live('click', function(e) {
  alert(1);
});

$(selector).live('click', function(e) {
  alert(2);
  e.stopPropagation();
  alert(3);
});

然后有人单击selector,显示所有 3 个警报。

有人可以解释吗?

PS:潜在的问题是当其他地方有实时绑定(读取文件)时,它们会被覆盖,还是全部被执行?

4

2 回答 2

0

除非您取消绑定以前的绑定,否则它只会添加一个新的事件侦听器,它们都会被执行(除非有什么东西停止执行)。

于 2013-02-26T19:29:49.057 回答
0

它们都按顺序执行。您可以通过调用 event.stopPropagation() 来阻止随后调用的事件处理程序的发生。(显然不是!)奇怪的是,如果您调用$(selector).off('click')它,它将删除附加到.live('click'). .live实际上已被弃用,不建议您使用.on.

来源

于 2013-02-26T19:32:33.950 回答