js添加事件及移除事件的两种方式

2,681 阅读1分钟

第一种 addEventListener 和 removeEventListener

可以使用removeEventListener方法来移除用addEventListener添加的事件。其语法如下:

target.removeEventListener(type, listener [, options]);

其中,target是要移除事件的目标对象,type是事件类型,listener是事件处理函数,options是一个可选参数,用于指定事件的各种属性,例如事件捕获或冒泡等。

需要注意的是,移除事件时,传递给removeEventListener方法的listener函数必须和添加事件时传递给addEventListener方法的listener函数是同一个函数引用,否则移除操作无效。

示例代码如下:

function handleClick() {
  console.log('Button clicked');
}

var button = document.getElementById('myButton');

// 添加事件
button.addEventListener('click', handleClick);

// 移除事件 
button.removeEventListener('click', handleClick);

// 添加事件的回调函数必须是具名函数,不能是匿名函数 否则无法移除;

以上代码中,首先定义了一个名为handleClick的事件处理函数,然后使用addEventListener方法将该函数添加为按钮的click事件处理函数,最后使用removeEventListener方法将该函数从按钮的click事件处理函数中移除。

第二种 onClick

示例代码如下:

// 添加点击事件
button.onClick=()=>{
    console.log('click')
}

// 移除点击事件 直接置空
button.onClick=null;

这两种方法都可以添加和移除事件,但是用addEventListener可以对同一对象添加多个相同的事件,用on方法对同一对象添加相同的话,后面添加的事件会覆盖前面的事件。