2012-05-29 86 views
3

美好的一天,每个人。有人能解释为什么下面的代码在谷歌浏览器中工作,而不是在Mozilla Firefox中?目标是在第一次点击元素时显示包含链接(即元素的子元素)的面板,将其隐藏在第二个元素上,链接应该可以工作。在Mozilla中,当您点击链接(作为元素的子元素的子元素)时,链接容器隐藏并停止传播不起作用。stopPropagation在Mozilla Firefox中不起作用

reasonToggle = $("#element").toggle(function() { 
     $("#links-container").css("visibility", "visible"); 
     $("#links-container").fadeTo(500, 1); 
    }, function() { 
     $("#links-container").fadeTo(500, 0, function() { 
      $("#links-container").css("visibility", "hidden"); 
     }); 
    }); 
    $("#element a").click(function() { 
     event.stopPropagation(reasonToggle); 
    ;}); 

HTML结构:

<div id="element"> 
    <div id="links-container"> 
     <a href=""> Link1 </a> 
     <a href=""> Link2 </a> 
     <a href=""> Link3 </a> 
    </div 
</div> 

我认为这不是一个问题找到解决办法,但它真的很有趣,以了解什么是错的代码。 谢谢。

+0

'event.stopPropagation(reasonToggle)'应该做什么? 'stopPropagation()'简化版,任何参数 –

回答

4

您在点击处理程序的匿名函数中缺少event

$("#element a").click(function() { 
//       ^^ 
+0

如果你meen:\t \t $( “#理由”)点击(函数(reasonToggle){ \t \t \t event.stopPropagation(); \t \t}); \t \t它仍然无法在Mozilla中工作(并在Chrome中工作) – user1423174

+0

不,我的意思是$('#element a')。click(function(event){evt.stopPropagation();}' –

+0

Thanx!作品! – user1423174

相关问题