我已经购买了一本关于JavaScript的书。我已经了解了所有内容,直到编辑代码以处理任何事情< 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 :(得分:1)
我理解参数,但什么是“e”插件?
e
来自事件处理程序,代表事件本身。
所以...如果事件不存在。(IE8)然后使用window.event?
某些版本的IE使用的global event仅在处理事件时可用。如果事件未传递给函数,请改用IE的全局事件。
事件定位究竟是什么?
事件target
或srcElement
是正在采取行动的元素。如果按钮上有一个单击处理程序,这将引用该按钮,如果输入上有更改或模糊处理程序,它将引用输入元素等。
我在路过什么?
第一个参数是您要处理的事件的名称,第二个参数是将处理事件的函数。