如何取消?

我有两个函数绑定到两个不同时间点击事件(使用jQuery)。 他们被解雇的顺序非常重要。 他们按正确的顺序射击。 问题是,当第一个函数返回false时,第二个函数仍然在发射!

我该如何正确取消该事件?

示例代码:

$(document).click(function() { 
  alert('a');
  return false;
});

$(document).click(function() {
  alert('b');
});

单击页面时,您仍然会看到“b”警告消息。 这是无法接受的!


使用jQuery事件对象的stopImmediatePropagation函数。

保持其他的处理程序不被执行。 此方法还通过调用event.stopPropagation()来停止冒泡。

$(document).click(function(event) { 
  alert('a');
  event.stopImmediatePropagation();
  return false;
});

$(document).click(function() {
  alert('b');
});

我要问的第一件事是:为什么你有两个函数绑定到相同的点击事件? 有权访问代码,为什么不直接打一个电话?

$(function (){
    var callbackOne = function(e){
        alert("I'm the first callback... Warning, I might return false!");
        return false;
    };

    var callbackTwo = function(e){
        alert("I'm the second callback");
    };

    $(document).click(function (e){
        if(callbackOne(e)){
            callbackTwo(e);
        }
    });
});

谢谢,取消绑定可以重新定义函数。

  $(document).ready(function(){
        $("#buscar_mercaderia").click(function(){ alert('Seleccione Tipo de mercaderia'); 
   });
$(".tipo").live('click',function(){
            if($(this).attr('checked')!=''){
                if($(this).val()=='libro'){
                    $("#buscar_mercaderia").unbind('click');
                    $("#buscar_mercaderia").click(function(){  window.open('buscar_libro.php','Buscar Libros', 'width=800,height=500'); });
                }else if($(this).val()=='otra'){
                    $("#buscar_mercaderia").unbind('click');
                    $("#buscar_mercaderia").click(function(){ window.open('buscar_mercaderia.php','Buscar Mercaderias', 'width=800,height=500');  });
                }
            }
        })
链接地址: http://www.djcxy.com/p/3291.html

上一篇: How to Cancel?

下一篇: event.preventDefault() vs. return false (no jQuery)