2013-02-10 1 views
0

jQuery에서 여러 이벤트 핸들러를 결합 된 형태로 추가 할 수 있지만 순수한 Javascript에서는이를 수행하는 방법을 알고 있습니다.결합 된 형태로 요소 또는 노드에 두 개의 이벤트 처리기를 추가하는 방법은 무엇입니까?

document.getElementsByTagName('input')[0].onclick.onkeypress = function() { 
    alert(1); 
} 

을하지만 그것은 형식 오류가 발생합니다 :

우리는 어떻게이 같은 결합 된 형태로 이벤트 핸들러를 첨부 할 수 있습니다.

답변

1

jQuery를 사용하면 더 간결 할 수 있지만, 이것은 정말 다르지 않다 :

var e = document.getElementsByTagName('input')[0]; 
e.onclick = e.onkeypress = function() { 
    alert(1); 
}; 

그리고 당신이 element와 글로벌 네임 스페이스를 오염되지 않도록하려는 경우,이 수행

(function(){ 
    var e = document.getElementsByTagName('input')[0]; 
    e.onclick = e.onkeypress = function() { 
    alert(1); 
    }; 
})(); 

당신을 addEventListener에 체인을 추가하는 기능을 정의 할 수 있지만 실제로 요점은 무엇입니까?

+0

모든 브라우저가 'addEventListener'를 지원하지는 않습니다 .. –

+0

@ShadowWizard 사실 OP가하는 일을 할 때 더 간결한 목표가 있다면 사실 addEventListener가 도움이되지 못했습니다. 나는 그것을 제거했다. –

+0

@dystroy 당신의 대답은 좋습니다! 그러나 키 누르기 전에 '켜기'를 놓 쳤습니다. –

관련 문제