2017-01-09 32 views
-1

我已經購買了一本關於JavaScript的書籍。我已經瞭解了一切,直到編輯代碼以處理任何事情< IE9JavaScript。瞭解電子/事件

有一個簡單的例子,檢查用戶名輸入超過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的全局事件。

什麼是事件定位?

事件targetsrcElement是被執行的元素。如果你有一個按鈕上的點擊處理程序,這將指向按鈕,如果你有一個輸入的變化或模糊處理程序,它將引用輸入元素等。

我在通過什麼?

第一個參數是要處理的事件的名稱,第二個參數是處理事件的函數。