百度地图JS API移动端,phonegap 自定义覆盖物Click事件无法执行 的 bug 解决方法...

当你为自定义覆盖物添加了click事件后,你会发现在移动端是无论如何也触发不了的,这算是一个BUG。

  最近我在为我的地图APP开发第二版,在为一个覆盖物添加行为事被困扰到了,自定义覆盖物的click事件竟然无法在iPhone端触发,以及百度地图JS API里面的开源库涉及到自定义覆盖物click事件的均无效。

  我为这个BUG烦恼了很久,直到今天,在QQ群里网友(在此要先感谢这位网友mooring)告诉了我解决方法:iPhone上的自定义覆盖物事件默认会触发map的click事件,如果map定义了click事件的话,自定义覆盖物的click事件也会被动触发。

   具体实现方法可以把自定义覆盖物的click事件改成touchstart或者touchend移动触摸事件,提前map.click事件执行(因为 click事件在移动端会延迟个大概300毫秒,具体原因不在这详述,请自行Google),这个时候可以先设置tmpfun = map.onclick;map.onclick = null;在touch事件内设置map.onclick = tmpfun;这样就因为触发了map.click从而变相的触发自定义覆盖物的click事件,但并没有触发map.click“事件”。

具体代码:

tmpfun = map.onclick;
map.onclick = null;
myname.addEventListener("touchstart", function() {    
    map.onclick = tmpfun;
    alert("click");
 });

 

 

转载自:http://imwelkin.lofter.com/post/1ce8cc_7dc4e1

转载于:https://www.cnblogs.com/Mangues/p/4806720.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值