Egret社区

button按钮移除点击事件

2018-10-12 10:37
10902
5银子
if(this.number == 0){    var onclick_A = function(){
    console.log("aa");
    this.number ++ ;
}

    this.button.addEventListener(egret.TouchEvent.TOUCH_TAP,onclick_A,this);
}else{
    this.button.removeEventListener(egret.TouchEvent.TOUCH_TAP,onclick_A,this);
    var onclick_A = function(){
    console.log("aa");
    this.number ++ ;
}

    this.button.addEventListener(egret.TouchEvent.TOUCH_TAP,onclick_A,this);

}

这样一个按钮当nubber=0的时候添加点击事件;number改变之后再点击的时候移除之前的监听器重新注册,结果打印了两个 “aa”;求大佬帮忙看下哪里写错了,谢谢!

最佳答案

查看完整内容

每次调用当前函数你都会重新构造一个onclick_A,每次的onclick_A不是同一个对象,所以你的取消不会生效,反而会注册多次
分享到 :
0 人收藏

2 个回复

倒序浏览
yxs  登堂入室 | 2018-10-12 10:37:58
每次调用当前函数你都会重新构造一个onclick_A,每次的onclick_A不是同一个对象,所以你的取消不会生效,反而会注册多次
shana  登堂入室 | 2018-10-12 11:03:13
yxs 发表于 2018-10-12 10:49
每次调用当前函数你都会重新构造一个onclick_A,每次的onclick_A不是同一个对象,所以你的取消不会生效,反 ...

谢谢大佬!因为onclick_A 里边需要操作函数里创建的元素所以图省事把点击事件写在函数里边了,我把onclick_A写在外边然后在函数里直接调用就OK了~~  感谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部