正常绑定和移除
// 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 }