请教各位关于百度地图api标注点marker的click事件问题
1个回答
展开全部
百度地图在地图中给标注点marker添加后click事件后
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();
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();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询