2010-05-04 2 views
2

나는이 같은 마우스 오버 효과를 제공하는 TR 태그에 결합하는 기능이 변경 후 자바 스크립트 이벤트에 바인딩하는 방법 : (". 그리드 TR").는 DOM이

$를 바인드 ("mouseenter를 ", function() { $ (this) .addClass ("hover "), }). 페이징이 발생하거나 여과 등이 그리드 완전히 대체하고, 모든 이벤트 바인딩이 실패 할 때

문제는 AJAX로로드 된 격자이다. DOM이 변경되는 경우에도 일치하는 요소에 자동으로 첨부되는 이벤트에 바인딩하는 방법이 있습니까?

감사합니다.

답변

4

$.live 당신이 원하는 무엇인가 :

$(".grid tr").live("mouseenter", function() { $(this).addClass("hover"); }).bind("mouseleave", function() { $(this).removeClass("hover"); }); 
+1

Boom goes the dynamite – Pierreten

+0

live()는 문제를 해결하지만 매우 비효율적입니다. ajax 호출의 success 이벤트에 연결하고 해당 dom 노드를 새 이벤트로 업데이트하는 것이 좋습니다 –

3

, 지금부터 .on()을 사용하십시오 비효율적이다.

$(".grid tr") 
    .on("mouseenter", function() { $(this).addClass("hover"); }) 
    .on("mouseleave", function() { $(this).removeClass("hover"); });