2011-03-03 3 views
18

자바 스크립트에서 마우스 클릭이 발생하는 html 페이지에서 요소를 결정할 수 있기를 바랍니다. 요소에는 이벤트 리스너가 연결되지 않습니다.마우스 클릭이 발생한 html 요소를 가져 옵니까?

기본적으로 : 페이지의 어딘가에 커서를 놓고 마우스 클릭 이벤트를 캡처하고 클릭이 발생한 요소를 가져옵니다. 이것이 가능한가?

내가 생각했던 한 가지 접근 방식은 click 이벤트의 x, y 좌표를 얻고 DOM을 반복하여 각 요소의 위치를 ​​얻은 다음 click 이벤트가 포함 된 가장 안쪽의 요소를 찾는 것입니다. 조금 길게 소리가납니다 - 다른 방법이 있는지 궁금해하고있었습니다.

답변

17

http://www.quirksmode.org은 이벤트에 대해 많은 것을 설명하는 매우 훌륭한 웹 사이트입니다.

특히 귀하의 질문에 : Event properties - Which HTML element is the target of the event?.

Internet Explorer에서 개체의 주소는 event.srcElement[docs]이고 다른 모든 브라우저의 주소는 event.target[docs]입니다.

링크 된 예제의 "Safari 버그"해결 방법을 참조하십시오 (아직 존재하는지 또는 어떤 Safari 버전인지는 모르지만).

+2

감사합니다. 완벽한 대답입니다. 멋지게 참조되었습니다. –

+0

불행히도이 게시물에서 링크가 끊어졌습니다. – f1lt3r

+1

@Alistair : 일시적인 문제입니다. https://twitter.com/ppk/status/648419502728835072 –

5

시도 event.target. 이 페이지에는 사용 방법을 보여주는 예제가 있습니다.

+4

[MDC의 문서] (https://developer.mozilla.org/en/DOM/event.target)에 링크하는 것이 jQuery와 관련이 없으므로 거짓 결론으로 ​​이어질 수 있습니다. –

+0

event.target이 IE에서 작동하지 않기 때문에 jQuery 예제에 연결했습니다. 거기에 event.srcElement가 필요합니다. – Douglas

관련 문제