Heim > Fragen und Antworten > Hauptteil
Laden Sie den Code direkt hoch
ele.addEventListener('click', function(e) {
console.log(e)
})
Hier muss ich unter bestimmten Umständen das Klickereignis von ele aufheben, aber ich muss beim Binden zusätzliche Parameter wie „Ereignis“ verwenden
Ich weiß, dass „removeEventListener“ ungebunden sein kann, aber die Funktion, die sie übergeben möchten, muss dieselbe benannte externe Funktion sein, was nicht funktioniert, wenn ich Parameter benötigeIch weiß auch, dass Sie, wenn Sie nur ein Klickereignis binden müssen, ele.click = function() {} und dann ele.click = null verwenden, um die Bindung aufzuheben, oder die von anderen Toolbibliotheken bereitgestellten Methoden verwenden
Aber jetzt möchte ich nur wissen, ob es möglich ist, RemoveEventListener zu verwenden, um es abzubrechen
Danke
淡淡烟草味2017-07-05 10:40:23
这样就行,绑定和解绑的函数只要是指向同一个就ok
function handler(e){
//操作
console.log(e)
}
ele.addEventListener('click', handler);//绑定
ele.removeEventListener('click', handler);//解绑
高洛峰2017-07-05 10:40:23
function bindFunc(e) {
console.log(e);
//用参数e来进行一些操作,干啥都行
}
this.cusBindFunc = bindFunc.bind(this, e); //bind一下,因为remove的时候用的func必须和绑定的时候一样
ele.addEventListener('click', this.cusBindFunc);//绑定事件
ele.removeEventListener('click', this.cusBindFunc);//解绑
另外为了兼容性,可以兼容一下attachEvent, detachEvent
不知道我是否理解了你的问题@AugustEchoStone