• 周五. 9月 22nd, 2023

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

关于移除事件时有参数的函数移除问题

admin

11月 28, 2021

正常绑定和移除

// bind event
element.addEventListener('click', _bindEventHandler)
// unbind event
element.removeEventListener('click', _bindEventHandler)

但是如果需要传参的话可以这样做

element.addEventListener('click', function() {
  _bindEventHandler(param1, param2)
})

这样可以正常传参,但是会有一个问题,就是不能够移除事件,因为匿名函数的指向不同

解决办法:

// 设置参数
element._params = { param1, param2 }
// 绑定事件
element.addEventListener('click', _bindEventHandler)
// 在函数中获取参数
function _bindEventHandler(event) {
  const params = event.target._params
  // ...do sth after
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注