이러한 유형의 경우 addEventListener
을 사용해야합니까?addEventListener를 사용해야합니까?
<input id="input" type="file" onchange="fun()>
또는
document.getElementById("input").addEventListener("change", function() {
fun();
});
그 이유는 무엇입니까?
이러한 유형의 경우 addEventListener
을 사용해야합니까?addEventListener를 사용해야합니까?
<input id="input" type="file" onchange="fun()>
또는
document.getElementById("input").addEventListener("change", function() {
fun();
});
그 이유는 무엇입니까?
onchange
속성은 fun
기능이 전역 범위에 있어야합니다. 더 큰 응용 프로그램에서는 응용 프로그램이나 외부 라이브러리에서 같은 이름의 다른 함수가있을 수 있으므로이 문제를 피하고자합니다. 또는 페이지에서 여러 번 사용되는 구성 요소를 작성한다고 상상해보십시오.
addEventListener
이 같은 폐쇄에 싸여 수 있으며 분리 된 구성 요소 내에서 사용할 수 :
(function(){})(
function fun(){
// Now other components can also have a `fun` function, without causing confusion.
// `fun` is only defined inside the IIFE (the (function(){})() wrapper around the module).
}
document.getElementById("input").addEventListener("change", function() {
fun();
});
);
플러스'addEventListener'를 사용하면 여러 이벤트를 추가 할 수 있으므로'this' 나'event'를 패스하는 것을 잊어 버릴 염려가 없습니다. 또한 어쨌든 인라인 핸들러에서 [Unobtrusive JavaScript] (http://en.wikipedia.org/wiki/Unobtrusive_JavaScript)를 사용하는 것이 좋습니다 :-) –
당신이 IE8에서 지원을 원하는 경우 아래, 당신하여 addEventListener에 대한 지원을 추가하기 위해 "polyfill"을 사용해야합니다 . Google "addEventListener polyfill"을 사용하여 사람들이 만든 솔루션을 찾으십시오. – Frug