marker.addEventListener("click", function(){})
如何在其他地方自动触发这个marker点击事件?
因为输出marker是一个对象,所以并不能marker.click()
想做的就是如百度地图那样点击左边搜索结果栏右边标注点自动点击一次
感觉api确实不太好用,想出来悔橡俩解决方案。
1.可以定义好事件处理函数,想要触发时执行一遍:
marker.addEventListener('click',func)
function func(){
alert()
}
// 想要触发时,直接调用func
func()
2.发现marker有一个属性B指向标记DOM,但B只在地图碧码旁加载完成后才有值,否则为null,所以可以在地图加载完成后给给B绑定事件.
map.addEventListener("tilesloaded",function(){
marker.B.addEventListener('click',function(){
alert()
})
/* 使用zepto或jQuery
$(marker.B).on('click',function(){
alert()
})
*/
})
// 注意触发时要保证地图加载完成
marker.B.click()
/* 或
$(marker.B).trigger('click')
*/
也可以不等地图加载完,定义marker后就直接绑定,但触发时还是触发marker.B也是可以的。
marker.addEventListener('click'模埋,function(){
alert()
})
// 注意触发时要保证地图加载完成
marker.B.click()
世界地图,点击中国,在中国的中心位置d出中国的简介;某小区的平面图,点击某栋楼,在该楼位置d出该楼的简介;
思路一、
1、地图的拼接:
将每个国家都切成一配键张图片,图片大小是整张地图的大小,每张图片在对应国家的位置上只显示该国家的图,其他位置均为透明。然后将每张图片叠放到一起,就拼接成了一张世界地图。
2、事件的监听
在每张图片上添加点击事件(如果需要有点击高亮的效果,可以通过将图片设置为按钮的背景图),通培腔巧过事件拦截,判断点击的位置在哪张图片上不圆弯是透明的,就可以判断出点击的是哪个国家。
3、找到点击国家需要显示气泡的位置。
每张图片绑定了该国家的一些数据:如气泡坐标。
思路二:
1、采用1张完整的地图,无需拼接,省去了美工的工作(如果需要有点击效果,也可以采用思路一的拼图方式)
2、绑定每个国家的位置和介绍等数据
每个国家通过1个或多个矩形来表示自己的位置,国家形状不规则,可能需要多个矩形来表示,矩形越小,国家之间的位置区分越清晰,不会造成点击靠近国家临界位置时,别的国家响应了事件。每个国家的矩形是不会有交集的。每个矩形都是一个对象,该对象中还包含了显示气泡的位置,国家的介绍等信息
3、在地图上添加点击事件,找到点击国家信息
通过判断点击的位置,是在哪个矩形内,就能获知点击的是哪个国家
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)