可能重复:
How to prevent other event handlers, from first handler, in jQuery
我有两个这样的jQuery函数:
$('#click-me').live('click', function(event) {
alert("Hello World");
event.preventDefault();
});
$('#click-me').live('click', function(event) {
alert("Goodbye World");
});
听起来可能很奇怪,但是假设我不想要第二个功能(“再见世界”警报被执行),我该怎么做? event.preventDefault没有帮助。
由于 彼得
答案 0 :(得分:5)
您可以使用event.stopImmediatePropagation()
来阻止触发所有后续处理程序。
答案 1 :(得分:1)
尝试类似
的内容var goodbyeCallback = function(event) {
alert("Goodbye World");
}
$('#click-me').live('click', function(event) {
alert("Hello World");
$('#click-me').die('click', goodbyeCallback);
});
$('#click-me').live('click', goodbyeCallback);
当回调被触发时,订单可能会出现问题;你不能加入他们一个回调吗?
BTW:jQuery documentation表示.live()
已被弃用。
答案 2 :(得分:1)
而不是live()
使用on()
和off()
:
$('#click-me').on('click', canBeOnOrOff);
function canBeOnOrOff(event) {
alert('goodbye world');
// this removes the event handler from the click event
$('#click-me').off('click', canBeOnOrOff);
}