问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

百度地图api,在移动端marker的click事件不触发,是怎么回事

发布网友 发布时间:2022-04-24 14:57

我来回答

2个回答

懂视网 时间:2022-05-12 03:56

本篇文章给大家带来的内容是关于移动端H5中百度地图的click事件的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

根据百度地图官方解释,在移动端 H5 页面中可监听下面这 4 个事件:

touchstart, touchmove, touchend, longpress

3271591710-5c501370cc877_articlex.jpg

而如果地图上监听了 click 事件,在移动端是不会执行这个事件里面的代码的。

我之前做一个需求时,给地图监听了 touchend 事件,不曾想当我拖动地图时,也执行了 touchend 里的代码。所以需要模拟一个像 zepto 中的 tap 事件,就能解决这个问题了。

我的代码是:

function initMap(baseData) {
 var mp = new BMap.Map('map');
 var point = new BMap.Point(
 baseData.data.gardenLongitude,
 baseData.data.gardenLatitude
 );

 mp.centerAndZoom(point, 15);

 // 保存 touch 对象信息
 var obj = {};

 mp.addEventListener('touchstart', function (e) {
 obj.e = e.changedTouches ? e.changedTouches[0] : e;
 obj.target = e.target;
 obj.time = Date.now();
 obj.X = obj.e.pageX;
 obj.Y = obj.e.pageY;
 });

 mp.addEventListener('touchend', function (e) {
 obj.e = e.changedTouches ? e.changedTouches[0] : e;
 if (
 obj.target === e.target &&
 
 // 大于 750 可看成长按了
 ((Date.now() - obj.time) < 750) &&
 
 // 应用勾股定理判断,如果 touchstart 的点到 touchend 的点小于 15,就可当成地图被点击了
 (Math.sqrt(Math.pow(obj.X - obj.e.pageX, 2) + Math.pow(obj.Y - obj.e.pageY, 2)) < 15)
 ) {
 // 地图被点击了,执行一些操作
 doSomething();
 }
 });
 }

热心网友 时间:2022-05-12 01:04

你这个panel和标注marker是自己定义的吗?如果是直接调用的百度的接口是不能添加事件的 除非自己定义的

如下:
localSearch.setSearchCompleteCallback(function (searchResult) {
var poi = searchResult.getPoi(0);
var marker = new BMap.Marker("南京市",13);
map.addOverlay(marker);
//自定义标注内容
var content = document.getElementById("text_").value + "<br/><br/>名称:" + poi.title + "<br/>地址:" + poi.Address;
var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");
marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); });
});
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 云脉车牌vin码API支持移动端开发吗? AngularJS 与移动端共用一套 API 吗 vue 做移动端,扫码功能有没有api? 移动端api参数为什么使用json 移动端的人脸识别身份验证api在哪里可以下载?接入可以选择哪些语言? 移动应用开发需要哪些API?APICloud提供的API全吗? 两部手机能用同一个吗?收到的信息一样吗 一个可以同时用两部手机登陆吗? 两个手机可以用一个吗? 请问两张手机卡怎么用同一个? 只要同时连同一个热点俩部手机可以登录同一个微信吗 2部手机使用同一个 可以在两个手机上登同一个吗 怎样可以让两部设备手机同时登录一个? 怎样在另一个手机上登录同一个? 如何同时在两部手机上,登陆一个? w800发短信反应慢! 如何在两部手机同时登陆一个? 企业破产清算期间可以重组吗? 公司只有在破产以后才可以重组吗? API的合成途径,API是什么意思 写Api 给移动端调用,token怎么弄比较好? ApiCloud移动端也是通过webview的js和原生语言进行交互的,属于hybrid... 请问:web app 开发 前端移动端页面的时候,调用数据是直接查数据库还是需要调用http请求查数据库?? 做移动端WebApp用什么框架比较好 手机网页上语音实时通话,请问怎么实现,不是下软件,而是使用api 冰箱不制冷断电半天又通电又会制冷啥原因 坐牢人每天干什么呢? 冰箱不制冷了,谁能帮忙找到问题? 坐过牢的人还有发展机会吗? 坐牢的人出来后的心理是怎样的 坐牢的人渴望收到朋友的信吗? 求助:怎样备份脚本? 奥克斯冰箱不制冷? rman备份脚本和rman增量备份脚本分享 oracle rman备份脚本怎么写 坐牢人每天天都是什么样的生活,真实经历告诉你 请问冰箱不结冰,躁音又很大是什么原因? 文件备份脚本bat命令cmd 想问大家一个问题:对于坐牢的人,不分判刑时间长与短,会不会被社会上的人瞧不起啊?坐牢好不好?