일부 자바 스크립트를 작성할 때 페이지가로드 될 때 이벤트가 할당 된 일련의 인터페이스 버튼이 있습니다. 내 문제는 이러한 이벤트를 동적으로 생성하지 못하는 것입니다.페이지가로드 된 후 자바 스크립트 처리 이벤트가 발생합니다.
예를 들어 URL 체커를 만들고 있는데 다른 도메인으로 연결되는 링크가 이탈 인터페이스를 표시하여 사용자가 이탈한다는 것을 알립니다. 페이지가로드 된 후 생성 된 모든 링크, 아약스 게시 (의도적 인 말장난 없음) 또는 페이지가로드 될 때 존재했던 것과 같은 자연스럽게 해당 이벤트를 가지지 않는 것.
실제로 새로 생성 된 항목에 이러한 종류의 전역 이벤트가 적용되도록하는 가장 좋은 방법은 무엇입니까?
저는 jQuery를 사용하기를 좋아하지만 이것은 실제로 개념적인 질문입니다.
전체 링크 효과를 다시 적용하는 함수를 만들어야합니까, 아니면 단편적인 방법 외에 더 똑똑한 방법이 있습니까?
누구나 알고 있나요 .live()가 작동합니까? 시간 초과 또는 실제 DOM 이벤트입니까? 또한 href가 일련의 요구 사항을 충족시키는 경우와 같이 더 복잡한 필터를 처리 할 수 있습니까? (http 등으로 시작) –
@Bob : [jQuery의 문서] (http://api.jquery.com/live/#event-delegation)에서 : * .live() 메소드는 이벤트 위임을 사용하여 DOM에 추가되었습니다. 조상 요소에 바인딩 된 처리기는 해당 하위 항목에서 트리거되는 이벤트를 담당합니다. 전달 된 핸들러.live()는 요소에 바인딩되지 않습니다. .live()는 특별한 핸들러를 DOM 트리의 루트에 바인딩합니다. * - 그래서 그것은 delegate()와 비슷하지만 DOM의 루트에서 작동합니다. 그래서 이것이 일반적으로 [ 'delegate()'] (http://api.jquery.com/delegate/). – treeface
@Bob : 셀렉터를 사용하여 "http"로 시작하는 속성 만 선택하는 경우 jQuery의 [selector with selector] (http://api.jquery.com/attribute-starts-with-selector/)를 참조하십시오. 귀하의 경우에는'$ ('a [href^= "http"'). live (...)' – treeface