2012-07-04 2 views
2

나는 같이 div 태그를 설정하는 JQuery와 사용하는 경우 : 나는 지금에있다 "maindiv"고, 나는 HTML을 다시 설정하는 경우에 "maindiv"객체에 이벤트를 바인딩 할 경우 다음JQuery와 리 바인드 이벤트

$('#maindiv').html(some content...); 

나중에 해당 이벤트를 다시 바인딩하지 않기로 선택하면 해당 이벤트가 계속 지연됩니까? 나는 html을 재설정 한 후에 다시 이벤트를 바인딩하면 이중 작업을 수행 할 것인가?

그 의미가 되길 바랍니다. 모든 통찰력을 가져 주셔서 감사합니다. 당신이 HTML 기능을 일부 HTML을 생성하고 만 바인딩을 사용하는 경우

다윗은

답변

2

요소 내용을 업데이트하면 내부 요소의 모든 이벤트가 제거됩니다.

그러나, 당신은 한 번만 (위임-이벤트가 접근 소위) 이벤트를 바인딩 event delegation를 사용할 수 있습니다

$("#maindiv").on("click", "#element", function() { 
    // do something 
}); 
+0

이 좋아, 좋은 소리. 나는 이것이 어딘가에있는 것을 읽었을 것이라고 생각하고 있었지만 그 자원을 찾을 수 없었다. 빠른 답장을 보내 주셔서 감사합니다. –

+0

@DavidWhitten 그래, 그 접근법은 정말 도움이됩니다. 천만에요 ;) – VisioN

0

는, 바인드 한 후 추가 된 미래의 요소는 이벤트를 트리거하지 않습니다.

가장 간단한 방법은 초기 콘텐츠에 이벤트가 적용된 후에 요소를 추가하려는 경우 바인딩 대신 live을 사용하는 것입니다.