请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

addEventListener中匿名函数怎么完成事件注销

1
2
3
4
a.addEventListener("click"function(e) {
e.preventDefault();
alert(2);
});

这样的代码,我想在一次操作后注销这个事件怎么完成,如果不把给函数加上一个名字的话。而且还有可能出现这个样的场景,我在一个事件发生后想执行一个函数,这个函数是带参数的,但是addEventListener并不能执行带参数的具名函数,所以我的解决办法是在事件发生后执行一个函数表达式匿名函数,再这个函数表达式中执行那个具名的函数,还有更好的办法吗?这个问题跟上面那个结合起来,也就是说我没有办法用给那个函数表达式具名的方法来实现事件注销,除非我写一个没有参数的函数,再里面执行那个有参数的函数,但是这个又不优雅

1
2
3
4
5
6
7
8
9
10
var a = 1;
var b = 2;
var c = 3;
function fun1(a, b, c) {
console.log(a + b + c);
}
var d4 = document.getElementById("d4");
d4.addEventListener("click"function() {
fun1(a, b, c);
})


正在回答

插入代码

1回答

匿名函数无法完全注销

0 回复 有任何疑惑可以回复我~
  • 提问者 李行知 #1
    那这种情况我应该怎么办呢?怎么去进行设计呢?
    回复 有任何疑惑可以回复我~ 2017-09-20 09:18:50
  • 双越 回复 提问者 李行知 #2
    封装一层就可以了。去搜一下 jquery 的事件绑定的实现机制
    回复 有任何疑惑可以回复我~ 2017-09-20 10:25:32
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号