监听的消息取消不了监听

求大神帮忙看一下,我监听的消息怎么取消不了监听,监听时使用了循环,所以是用的匿名函数做为回调

           // 监听4张答题卡牌按钮事件
            // 注意在答题完毕后要关闭监听按钮事件
            let _this = this;
            for (let i = 0; i < 4; i++) {
                const cardNode = this.paiZhuoNode.children[i];
                if (cardNode) {
                    cardNode.on(Button.EventType.CLICK, () => {
                        _this.onAnswerCardClicked(i);
                    }, this);
                }
            }


        let len = this.paiZhuoNode.children.length;
        for (let i = 0; i < len; i++) {
            this.paiZhuoNode.children[i].active = true;
            // 取消监听
            this.paiZhuoNode.children[i].off(Button.EventType.CLICK);
        }

不能取消监听,导致我的每次按钮点击以后都会执行多次