如何防止调用jQuery函数

时间:2012-12-30 21:24:32

标签: javascript jquery onclick click

  

可能重复:
  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没有帮助。

由于 彼得

3 个答案:

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