JS绑定带参数的事件总要执行一次方法,如何避免?

类似于这样的代码:

pointDOM.addEventListener("click",clickPointIndex(i))

按我的想法来说,这个pointDOM绑定的事件也就是clickPointIndex应该是当pointDOM被点击的时候才会执行。可是在实际状况中,它在没有点击之前就自己执行了一次。怎么破?
感谢给我提供帮助的各位:)

阅读 5.9k
6 个回答

var self = this;
pointDOM.addEventListener("click",clickPointIndex.bind(self, i))

你这哪里是在绑定方法,明明就是在执行 clickPointIndex

第2个参数应该是一个函数,不是一个函数的运行结果

pointDOM.addEventListener("click",function(){

clickPointIndex(i)

})

不是function(){clickPointIndex(i)};么
另外i是怎么回事 这很明显涉及闭包写法了 上下文呢

事件是异步的,在绑定的时候只需要函数引用就好了,事件触发的时候才去执行处理函数。

pointDOM.addEventListener("click","clickPointIndex(" + i + ")");

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题