码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-09-14 12:08:21      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

当你为自定义覆盖物添加了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

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

标签:

原文地址:http://www.cnblogs.com/Mangues/p/4806720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!