前端面经 关于addEventListener的参数,以及HTML DOM的事件传播方式(冒泡与捕获)

关于addEventListener参数,以及HTML DOM的事件传播方式(冒泡与捕获)

addEventListener()

·addEventListener()事件监听,可以用removeEventListener()来移除事件的监听。
·addEventListener()将事件处理程序附加到指定元素,不覆盖现有的事件处理程序。
·addEventListener()可以添加到任何DOM对象,包括window对象。

语法:element.addEventListener(event,function,useCapture);
参数

  1. event:事件的类型,click、mousedown等。没有on前缀。
  2. function:事件发生时执行的函数
  3. useCapture:指定用事件冒泡还是事件捕获。是一个布尔值:默认为false,即使用事件冒泡;值为true时,使用事件捕获。

例子

element.addEventListener("click", function(){
    
     alert("Hello World!"); });

也可以把函数写在外部,把函数名当作第二个参数:

element.addEventListener("click", myFunction);
function myFunction() {
    
    
  alert ("Hello World!");
}

允许在同一元素中添加多个事件,而不覆盖原有的事件。

element.addEventListener("click", myFunction);
element.addEventListener("click", mySecondFunction);

事件冒泡与事件捕获

HTML DOM有两种事件传播方式:事件冒泡和事件捕获。
举个例子:如果div元素中有p元素,那么用户单击p元素,应该先处理p元素,还是先处理div元素的事件呢?

  1. 事件冒泡:先处理内部元素的事件,再触发外部元素;即先处理p元素,再处理div元素。
  2. 事件捕获:先处理外部元素的事件,再触发内部元素。即先处理div元素,再处理p元素。

事件移除 removeEventListener()

element.removeEventListener("mousemove", myFunction);

猜你喜欢

转载自blog.csdn.net/qq_43263320/article/details/114278563