android 百度地图 markerclick 没有效果,百度地图api,在移动端marker的click事件不触发,是怎么回事...

2016-12-23 回答

百度地图在地图中给标注点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();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值