mapbox取消监听事件的奇怪bug

bug出现在我想移除给地图添加的监听事件,移除失败。最后发现是给map.off()方法传递的this指针异常,导致找不到要删除的函数:

        initListenMap(val, type) {
            const map = this.sdMap.map
            const that = this
            const zoomevent = function () {
                const code = that.params.code

                that.domStr.zoom = that.sdMap.zoom
                if (that.params.clusterKey) {
                    that.params.clusterKey = false
                    return
                }
                that.requestCluster(code, 2)
            }
            const dragendevent = function () {
                const code = that.params.code
                that.requestCluster(code, 1)
            }
            if (val) {
                map.on('zoomend', zoomevent)
                map.on('dragend', dragendevent)
            } else {
                map.off('zoomend', zoomevent)
                map.off('dragend', dragendevent)
            }
        },

 将zoomevent和dragendevent事件放到option api methods中即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值