2009-05-22 5 views
1

페이지로드시 서버에서 보내고 AJAX를 통해 자주 업데이트되는 웹 페이지의 콘텐츠가 있습니다. 처음에로드 될 때 $ (function() {})을 사용하여 서버의 뉴스를 기반으로 바인딩 및 업데이트를 수행합니다. 다시 채워질 때 코드를 실행하고 특히 클릭 이벤트를 리 바인드하고 서버의 뉴스로 업데이트 할 수 있기를 원합니다.페이지의 HTML에 추가 할 때 javascript를 실행합니다.

$ .getScript separatley를 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 나는 자바 스크립트가 AJAX ($ ('el') .html (...)을 통해 화면을 채울 때 어떻게 적용되는지 다소 혼란 스럽다. html (...)) 나는 종종 이것을 포함 된 javascript와 함께 사용하기 때문에 작동한다. 아무도 어떻게 작동하는지 정리할 수 있습니까?

답변

2

새로 추가 된 DOM 노드 (Ajax 또는 기타)에서 이벤트를 live을 사용하여 바인딩합니다.

포함 된 스크립트는 DOM에 추가 할 때 실행됩니다.

이 부분은 example입니다.

+0

$ .live()는 아무 것도 리 바인드하지 않으며 인스턴스 생성시 한 번만 자체 바인딩하는 전역 윈도우 수신기입니다. – duckyflip

+0

당신이 그 문제의 "재"부분을 차지하고 있는지 확신 할 수는 없지만, 그가 요구하는 것은 이벤트를 필요로하는 요소에 이벤트를 바인딩하는 것입니다. "재"바인딩이 부정확하므로 제거하겠습니다. – cgp

2

jQuery 이벤트의 경우 새 요소에 이벤트를 적용하려면 .live() 메서드를 사용합니다.

그러나 jQuery 1.3은 blur, focus, mouseenter, mouseleave, change 및 live 이벤트로 이벤트 전송을 지원하지 않습니다. roadmap (변경, 제출 및 초점이 jQuery 1.4의 경우)

.live()에서 지원하지 않는 이벤트에 바인딩하려는 경우 liveQuery 플러그인을 사용할 수 있습니다.

관련 문제