var btn1 = document.getElementById('btn1'); // 인라인 방식 var btn2 = document.getElementById('btn2'); // 객체 속성 지정 방식 var btn3 = document.getElementById('btn3'); // 이벤트 리스너 방식 function addEvent() { // 이벤트 등록 btn1.setAttribute('onclick', 'handler1()'); btn2.onclick = handler2; btn3.addEventListener('click', handler3, false); } function removeEvent() { // 이벤트 제거 btn1.removeAttribute('onclick'); btn2.onclick = null; btn3.removeEventListener('click', handler3); } var btn4 = document.getElementById('btn4'); // 이벤트 등록/제거 토글 버튼 var toggle = false; function toggleEvent() { var output = document.getElementById('output'); toggle = !toggle; if (toggle) { addEvent(); // 각 버튼이 에빈트를 등록 합니다. btn4.innerHTML = "이벤트 제거"; output.innerHTML = "이벤트가 등록된 상태"; } else { removeEvent(); // 각 버튼에 이벤트를 해제 합니다. btn4.innerHTML = "이벤트 등록"; output.innerHTML = "이벤트가 제거된 상태"; } } toggleEvent(); function handler1() { alert("인라인 방식으로 등록됨"); } function handler2(e) { // 첫번째 인자로 event 객체가 전달됨 console.log(e); alert("객체 속성에 이벤트 등록됨"); } function handler3(e) { // 첫번째 인자로 event 객체가 전달됨 console.log(e); alert("이벤트 리스너로 이벤트 등록됨"); }
<button type="button" id="btn1" onclick="handler1()">인라인 방식</button> <button type="button" id="btn2">객체 속성 지정 방식</button> <button type="button" id="btn3">이벤트 리스너 방식</button> <hr> <button type="button" id="btn4" onclick="toggleEvent()">이벤트 제거</button> <div id="output"></div>