const eventTarget = document.getElementById('trigger')
eventTarget.onclick = () => {
alert('hello!');
}
const eventTarget = document.getElementById('trigger')
eventTarget.addEventListener('click',()=>{
alert('hello!');
});
onclick
으로 작성한 경우, 해당이벤트에 대한 핸들러함수를 하나만 지정할 수 있다.let obj = document.getElementById('trigger');
let do1 = () => {
alert("do1");
};
let do2 = () => {
alert("do2");
};
obj.onclick = do1; // do1은 작동하지 않는다.
obj.onclick = do2;
"click"에 대해 하나의 이벤트만 지정 가능
addEventListener("type", 리스너(작동될 함수), 캡쳐링을 쓸지)
세번째 parameter가 true일 경우 캡쳐링을 쓴다. false일 경우 버블링을 쓴다 라는것을 작성시 판단할 수 있다.
버튼을 누르거나 버튼에 마우스를 올릴 때 모두 함수를 동작하도록 하기
onclick
의 경우obj.onclick = do1;
obj.onmouseover = do1;
addEventListener
의 경우['mouseover', 'click'].map(function(e) {
obj.addEventListener(e, do1);
});
🚩 onclick 보다는 addEventListener() 사용하기
handle~
로 이벤트핸들러의 함수명을 지음 addEventListener("click", function handleElementClick() {...
원하는 변수를 다른함수의
return
값으로 지정(= 함수실행의 결과값으로 지정)하고,addEventListener()
함수의 지역변수에 다른함수의 실행 결과를 할당
function bar() {
const a = 1;
return a; // (1)원하는 변수를 return값으로 반환시키고
}
element.addEventListener("click", function foo() {
var result = bar(); // (2)함수 실행 결과(즉, 리턴된 값)를 변수에 할당해서 사용
}
);
원하는 변수를 전역변수로 꺼낸다. 전역변수는 다른 함수에서도 접근 가능한 scope에 있기 때문에 사용할 수 있게 된다.
const a = 1;
function bar() {
}
element.addEventListener("click", function foo() {
a;
});
bar()함수로 이벤트 객체를 받아서 foo()함수에 넘겨주면, foo()함수에서 이벤트 객체를 매개변수로 받아서 활용할 수 있다.
function foo(element) {
console.log(element.textContent);
} //이벤트객체를 매개변수로 받아서 textContent를 출력
element.addEventListener("click", function bar(event) {
foo(event.target);
));
외부에 함수를 만들고, addEventListener함수의 실행문에 외부함수가 원하는 매개변수로 실행되도록 작성하기
function foo() {
}
element.addEventListener("click", function bar (event) {
foo(/* 매개변수 */);
});
//element를 클릭했을 때
//bar함수로 이벤트 객체를 받아오고,
//foo()함수도 실행되도록 할 수 있다.