Javascript 将参数传递给bind()时事件丢失
我正在尝试将回调与事件绑定,但它在传递回调时丢失了事件。这是我的密码 HTML:Javascript 将参数传递给bind()时事件丢失,javascript,Javascript,我正在尝试将回调与事件绑定,但它在传递回调时丢失了事件。这是我的密码 HTML: 现在,如何将事件和回调都传递给处理程序?我不会绑定函数,而是执行:[..].addEventListener'click',event=>this.listenerevent,cb 请参见此处的原因: 函数handleClickListenere,回调{ console.log“单击”; 回调; } 函数侦听器{ document.addEventListener'click',e=>handleClickList
现在,如何将事件和回调都传递给处理程序?我不会绑定函数,而是执行:[..].addEventListener'click',event=>this.listenerevent,cb 请参见此处的原因: 函数handleClickListenere,回调{ console.log“单击”; 回调; } 函数侦听器{ document.addEventListener'click',e=>handleClickListener,e=>console.loge; }
startListener您同时获得回调和事件。像这样修改您的代码,您将看到您的回调被调用。第一个参数是回调,第二个参数是事件 T类{ 监听器e,c{ console.loge; console.logtypeofc; E //行政长官 } 跑{ document.getElementById'click'。addEventListener'click',this.listener.bindthis,e=>{ console.log“我被召唤”; }; } } 新T.run;
单击是否将回调绑定为第一个参数?如果你想那样使用bind,它应该是handlerc,e。
<button id="click">click</button>
<script>
class T {
handler (e, c) {
console.log(e)
console.log(typeof c)
//c(e)
}
run () {
document.getElementById('click').addEventListener('click', this.handler.bind(this, e => {
console.log(e)
}))
}
}
(new T).run()
</script>
handler (e) {
console.log(e)
}
run () {
document.getElementById('click').addEventListener('click', this.handler.bind(this))
}