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