Javascript – Informationen zum Binden und Lösen der Bindung von nativen js-Ereignissen
巴扎黑
巴扎黑 2017-07-05 10:38:23
0
2
655

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ötige

Ich 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

巴扎黑
巴扎黑

Antworte allen(2)
淡淡烟草味

这样就行,绑定和解绑的函数只要是指向同一个就ok

function handler(e){
    //操作
    console.log(e)
}
ele.addEventListener('click', handler);//绑定
ele.removeEventListener('click', handler);//解绑
小葫芦
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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage