JavaScript的。了解电子事件

时间:2017-01-09 17:05:11

标签: javascript function events

我已经购买了一本关于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);
  });
}

1 个答案:

答案 0 :(得分:1)

  

我理解参数,但什么是“e”插件?

e来自事件处理程序,代表事件本身。

  

所以...如果事件不存在。(IE8)然后使用window.event?

某些版本的IE使用的global event仅在处理事件时可用。如果事件未传递给函数,请改用IE的全局事件。

  

事件定位究竟是什么?

事件targetsrcElement是正在采取行动的元素。如果按钮上有一个单击处理程序,这将引用该按钮,如果输入上有更改或模糊处理程序,它将引用输入元素等。

  

我在路过什么?

第一个参数是您要处理的事件的名称,第二个参数是将处理事件的函数。