背景
为实现在地图上点击各个控件,触发不同的事件,采用了事件内触发事件的方法。
在点击事件中绑定点击事件中,发现事件会不断叠加,因此页面也出现更多的弹窗,体验很不雅观。
const self = this
self.map.on('click', function(evt) {
$(document).on('click', '#test', function(e) {
self.$message({
type: 'warning',
duration: 2000,
message: '请直接点击地图位置更改企业经纬度'
})
})
})
原因分析
出现这种情况是因为每点击一下document就会绑定一遍事件.
在每次按钮的点击事件触发后,都被会记录下来,后面的每次click事件,都会重复触发前面积累的事件。
解决方案
使用unbind(),在每次触发点击事件的方法前,先解绑之前的事件,再重新触发新的点击事件
$('#passCompany').unbind('click').click(function(e) {
self.$message({
type: 'warning',
duration: 2000,
message: '请直接点击地图位置更改企业经纬度'
})
self.id = e.target.value
})