2013-06-18 71 views
2

我有两个.click方法,我不知道他们为什么只能在没有对方的情况下工作。两种.click方法相互干扰?

的代码:

1,负责滑动和隐藏内容

var clickAction = function(){ 
     settings.tabHandle.click(function(event){ 
      if (obj.hasClass('open')) { 
       slideIn(); 
      } else { 
       slideOut(); 
      } 
     }); 

     clickScreenToClose(); 
    }; 

2负责选择性地重新加载一个div

$(
function(){ 
    var jContent = $("#simplecart_items"); 
    $("a").click(
     function(objEvent){ 
      var jLink = $(this); 
      jContent.load(jLink.attr("href")); 
      return(false);      
     } 
     ); 

} 
); 

任何想法?

+1

'$( “A”)。单击('很一般很容易被混淆。请将您markup。你在哪里定义了'settings.tabHandle'? – jtheman

+0

你是否在获取控制台错误? – Dom

+3

我假设在一个点击处理程序中返回false会阻止其他点击处理程序被触发 – Blazemonger

回答

3

尝试替换返回(false);在数量2与objEvent.preventDefault(); jQuery中

jQuery.on()

的事件处理程序,能够防止使用假的返回值鼓泡,或者通过调用事件对象上这些方法:event.preventDefault(),event.stopPropagation(),和event.stopImmediatePropagation( )

event.preventDefault()阻止浏览器执行事件的默认操作,例如表单提交,导航...

event.stopPropagation()停止jQuery从连接到节点的调用处理程序进一步到达DOM。在同一级别的处理程序仍然会被调用。

event.stopImmediatePropagation()停止调用所有处理程序。

从事件处理程序返回FALSE自动调用event.stopPropagation()和event.preventDefault()

+0

谢谢帕特里克,那正是我最终做的。像魅力一样工作。信息非常感谢! – user2487746