2010-01-08 6 views
4

저는 자바 프로그래밍 분야의 상대적인 티로입니다. 그래서 제발 쉽게 가십시오. :-)다른 수신기가없는 경우에만 Javascript EventListener 추가?

페이지의 다양한 DOM 요소에 eventListener를 추가하려고합니다. 그러나, 일부 요소는 이미 eventListener를 갖기 위해 내 이벤트를 추가하고 있으며, 나는 그 이벤트를 대신하고 싶지 않습니다. 이벤트와 연관된 이벤트가없는 요소에만 내 이벤트를 추가하려고합니다.

addEventListener, event.StopPropagation, 이벤트 버블 링 등과 관련된 여러 가지 항목을 살펴 보았지만 아직 수행 할 방법을 찾지 못했습니다.

주어진 요소에서 다른 이벤트 리스너를 감지 할 수있는 방법이 있습니까? 아니면 원하는 방식으로 다른 방법으로 검색 할 수 있습니까?

답변

1

이 주어진 요소의에 [이벤트] 속성을 사용하여 설정되어있는 경우 확인할 수 : jQuery와 같은 자바 스크립트 라이브러리 A는 이벤트를 정의하는 데 사용 된 경우이 작동하지 않습니다

if (typeof(document.getElementById("element-id").onclick) == "undefined") { 
    // event undefined 
} 

if (typeof(document.getElementById("element-id").onclick) == "function") { 
    // event defined 
} 

공지 사항 (예 : $("#element-id").click() 사용). jQuery을 사용하는 것이 좋습니다. handle events으로 쉽게 그럴 수 있습니다.

편집 : 어쨌든 addEventHandler를 사용하는 경우 작동하지 않습니다. yourElement.onclick = anyFunction

+0

내가 감지하려고하는 이벤트는 jQuery (live() 이벤트로 정의 됨)를 사용하여 정의 된 경우에만 작동합니다. jQuery를 자체적으로 처리하지만 jQuery.com 사이트의 API 정보를 뒤적 거리며 기존 이벤트를 감지하고 내 이벤트를 바인딩하는 방법에 대한 정보 만 볼 수는 없다. – Hellion

+0

오,이 경우 : http://stackoverflow.com/questions/1236067/test-if-event-handler-is-bound-to-an-element-in-jquery – raphael

+0

감사합니다, 라파엘! – Hellion

관련 문제