Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript []如何连接事件侦听器?_Javascript_Event Listener - Fatal编程技术网

Javascript []如何连接事件侦听器?

Javascript []如何连接事件侦听器?,javascript,event-listener,Javascript,Event Listener,在hyperapp代码库中,我们可以看到以下行: 这表明: try { element[name] = value } catch (_) {} 显然,元素是一个HTMLElement,值是一个函数!这里有趣的部分是,如果name是,比如说onclick,value是一个函数,它向控制台打印一些东西,那么上面的代码正确地为onclick添加了事件监听器 我想知道这是addEventListener的缩写还是我错了 我想知道这是否是addEventListener的缩写 不是。是

在hyperapp代码库中,我们可以看到以下行:

这表明:

  try {
    element[name] = value
  } catch (_) {}
显然,元素是一个HTMLElement,值是一个函数!这里有趣的部分是,如果name是,比如说onclick,value是一个函数,它向控制台打印一些东西,那么上面的代码正确地为onclick添加了事件监听器

我想知道这是addEventListener的缩写还是我错了

我想知道这是否是addEventListener的缩写

不是。是旧的DOM0样式的事件处理早于它。如果将函数分配给element.onclick或element.onmouseover等,它会将该函数设置为事件处理程序

与addEventListener不同的是,只有一个函数可以通过这种方式设置;如果您使用第二个函数再次执行此操作,它将替换第一个函数。相比之下,addEventListener可以用于与其他人很好地协作,允许使用多个处理程序

另一个区别是onxyz风格适用于旧的IE,它不支持addEventListener[但支持它的Microsoft唯一的前身attachEvent]。因此,如果不需要与其他人友好相处,那么旧的跨浏览器代码将经常使用onxyz样式。FWIW,如果您仍然必须在中断的兼容模式下支持IE8或IE9-IE11,您可以在中使用hookEvent函数,如果可能,它使用addEventListener或attachEvent

我想知道这是否是addEventListener的缩写

不是。是旧的DOM0样式的事件处理早于它。如果将函数分配给element.onclick或element.onmouseover等,它会将该函数设置为事件处理程序

与addEventListener不同的是,只有一个函数可以通过这种方式设置;如果您使用第二个函数再次执行此操作,它将替换第一个函数。相比之下,addEventListener可以用于与其他人很好地协作,允许使用多个处理程序

另一个区别是onxyz风格适用于旧的IE,它不支持addEventListener[但支持它的Microsoft唯一的前身attachEvent]。因此,如果不需要与其他人友好相处,那么旧的跨浏览器代码将经常使用onxyz样式。FWIW,如果您仍然必须在其中断的兼容模式下支持IE8或IE9-IE11,您可以在中使用hookEvent函数,如果可能,它使用addEventListener或attachEvent。

这是addEventListener的一种简写,但有一个主要缺点:您只能有一个处理程序

函数firstHandler{ 控制台。日志'1'; } 函数secondHandler{ 控制台。日志'2'; } 让onclickEl=document.getElementById'onclick'; 让addEventListenerEl=document.getElementById'addEventListener'; //我们可以使用addEventListener绑定多个事件处理程序 addEventListenerEl.addEventListener'click',firstHandler; addEventListenerEl.addEventListener'click',secondHandler; //但请注意,当我们对onclick执行相同操作时会发生什么 onclickEl.onclick=firstHandler; onclickEl.onclick=secondHandler; 加法器 onclick有点像addEventListener的简写,但有一个主要缺点:只能有一个处理程序

函数firstHandler{ 控制台。日志'1'; } 函数secondHandler{ 控制台。日志'2'; } 让onclickEl=document.getElementById'onclick'; 让addEventListenerEl=document.getElementById'addEventListener'; //我们可以使用addEventListener绑定多个事件处理程序 addEventListenerEl.addEventListener'click',firstHandler; addEventListenerEl.addEventListener'click',secondHandler; //但请注意,当我们对onclick执行相同操作时会发生什么 onclickEl.onclick=firstHandler; onclickEl.onclick=secondHandler; 加法器 点击查看