2017-01-09 1 views
-1

자바 스크립트로 책을 구입했습니다. 어떤 것도 작업 할 코드를 편집 할 때까지 모든 것을 이해했습니다. < IE9자바 스크립트. 전자/이벤트 이해

사용자 이름 입력을 5 자 이상으로 확인하는 간단한 예제가 있습니다. 간단합니다. 그들은 이벤트를 함수에 도입했습니다.

아래 코드에서

, 내가 .. 내가 도움을 필요로하는 부분에 대한 의견을 포함 시켰습니다

function checkLength(e, minLength) { //I understand parameters, but what is 'e' plugging? 
    var el, elMsg; 

    if (!e) { //So... if event doesn't exist.(IE8) then use window.event? 
    e = window.event; 
    } 
    el = e.target || e.srcElement; //What exactly is the event targeting? 
    elMsg = el.nextSibling; 

    if (el.value.length < minLength) { 
    elMsg.innerHTML = 'Username must be ' + minLength + ' characters or more'; 
    } else { 
    elMsg.innerHTML = ''; 
    } 
} 

var elUsername = document.getElementById('username'); 

if (elUsername.addEventListener) { 
    elUsername.addEventListener('blur', function(e) { //what am i passing? 
    checkLength(e, 5); 
    }, false); 
} else { 
    elUsername.attachEvent('onBlur', function(e) { 
    checkLength(e, 5); 
    }); 
} 
+0

https://developer.mozilla.org/en-US/docs/Web/API/Event – epascarello

+0

* "나는 무엇을 전달하고 있습니까?"* 문자열 "blur"와 함수 (그리고'false') . –

답변

1

내가 매개 변수를 이해하지만, 연결 'E'는 무엇인가?

e은 이벤트 처리기에서 나오며 이벤트 자체를 나타냅니다.

그래서 ... 이벤트가없는 경우 (IE8) window.event?

일부 버전의 IE는 이벤트 처리 중에 만 사용할 수있는 global event을 사용합니다. 이벤트가 함수에 전달되지 않으면 IE의 전역 이벤트를 대신 사용하십시오.

정확히 이벤트 타겟팅이란 무엇입니까?

이벤트 target 또는 srcElement이 처리 대상 요소입니다. 버튼에 클릭 핸들러가 있으면이 버튼을 참조 할 수 있습니다. 입력에 변경 핸들러 나 블러 핸들러가 있으면 입력 요소 등을 참조합니다.

나는 무엇을 통과합니까?

첫 번째 매개 변수는 처리하려는 이벤트의 이름이고 두 번째 매개 변수는 이벤트를 처리 할 함수입니다.