2009-02-28 8 views
2

내가 jQuery를 함께 몇 가지 이벤트 바인딩을 시도하고 해고, 나는 준비가 내 문서에이 간단한 코드를 가지고 : 나는 안에 링크 그게 위로 마우스를 이동할 때, 그래서자바 스크립트/jQuery를이 : 이벤트가 두 번

$(document).ready(function() { 
    $("p a").each(function(i, selected){ 
     $(selected).hover(
      function(event) { alert('over: ' + event.type); }, 
      function(event) { alert('out: ' + event.type); }); 
     } 
    ) 
}); 

을 단락 (선택자는 "pa") 경고 팝업이 두 번 표시됩니다. 따라서 mouseenter와 mouseleave는 두 번 실행됩니다.

Google 크롬에서만 발생합니다. 인터넷   탐색기   7, Firefox 3, OperaSafari 두 이벤트가 모두 한 번만 발생합니다.

왜 이런 일이 발생합니까?

답변

6

어쨌든 경고가 실제로 Chrome에서 추가 이벤트를 일으키는 것 같습니다. 다음 코드를 사용하면 하나의 이벤트 만 볼 수 있습니다.

$(document).ready(function() { 
    $("p a").each(function(i, selected){ 
    $(selected).hover( 
     function(event) { $("p").append('<br>over: ' + event.type); }, 
     function(event) { $("p").append(' out: ' + event.type); }); 
    } 
) 
}); 
+1

예 - 알림이 표시되자 마자 다른 mouseover 이벤트가 발생합니다. – Shog9

+1

답변 해 주셔서 감사합니다. 나는 사파리를 점검했다. 거기서 경고는 "마우스의 이벤트를 죽인다"... – emirc

8

내 질문에 대한 답변이 아니라고 생각하지만이 게시물은 내 버그를 조사하는 동안 나타났습니다. 문제는 내가 부주의로 외부 자바 스크립트를 두 번 포함 시켰습니다.

동일한 문제가있는 다른 사람들을 위해 이것을 문서화하는 것이 가치 있다고 생각했습니다. 추적하는 데 시간이 걸리는 분명한 오류!

+0

고맙다는 것이 내 문제였다 !! ;) +1 –

관련 문제