상세 컨텐츠

본문 제목

자바스크립트 이벤트를 발생시킨 엘리먼트

Web Development/Javascript

by thankee 2008. 10. 26. 18:38

본문

이벤트를 발생시킨 엘리먼트를 찾는 방법은 세가지로 나누어지지만, 모든 브라우저에서 모든 방법이 통하는 것은 아니다.

1. 이벤트를 실행할 핸들러에서 매개변수로 받은 객체의 target 속성 참조(IE 실행 불가)
2. window객체의 event.srcElement 객체 참조(FF실행 불가)
3. this 키워드로 참조. IE, FF 양쪽 모드 가능, 하지만 this 키워드는 컨텍스트 엘리먼트로서 수시로 바뀔 가능성이 크다.
<input type="button" id="btClcik" />

<script>
    window.onload=function()
    {
        document.getElementById('btClcik').onclick = function(eventArgs)
        {
            var eventElement;
            //이벤트를 발생시킨 엘리먼트 찾기 1 (FF)
            eventElement =  eventArgs.target;
            alert(eventElement.id);
            //이벤트를 발생시킨 엘리먼트 찾기 2 (IE)
            //eventElement = window.event.srcElement;
            //alert(eventElement.id);
            //이벤트를 발생시킨 엘리먼트 찾기 3 (FF, IE)
            var eventElement2 = this;
            alert(eventElement.id);
        }
    }
</script>
따라서 1과 2의 방법을 합쳐 eventElement = eventArgs ? eventArgs.target : window.event.srcElement;로서 사용하는게 가장 권장된다.

관련글 더보기