2012-05-29 5 views
3

안녕하세요. 누군가 다음 코드가 Google 크롬에서 작동하고 Mozilla Firefox에서 작동하지 않는 이유를 설명 할 수 있습니까? 목표는 요소의 첫 번째 클릭에 링크가있는 패널 (즉 요소의 하위 요소)을 표시하고 두 번째 요소를 숨기고 링크가 작동해야 함을 나타냅니다. Mozilla에서 (요소의 하위 요소 인) 링크를 클릭하면 컨테이너가 숨겨지고 stopPropagation이 작동하지 않습니다.Mozilla Firefox에서 stopPropagation이 작동하지 않습니다.

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()'당신이 MEEN 경우 매개 변수를 –

답변

4

클릭 핸들러의 익명 기능에 event이 누락되었습니다.

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

을 does't : \t \t $를 ("# 이유로 A"를) 클릭 (함수 (reasonToggle를) { \t \t \t event.stopPropagation(); \t \t을});. \t \t 아직 모질라에서 작동하지 않습니다. (크롬에서도 작동합니다.) – user1423174

+0

아니요, 저는 '$ ('# 요소 a ')를 의미합니다. 클릭 (function (event) {evt.stopPropagation();} –

+0

고맙습니다! 공장! – user1423174

관련 문제