作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我使用的是谷歌地图,一旦用户单击鼠标右键,我就会在 map 上创建位置。我让这个事件帮我解决了这个问题
google.maps.event.addListener(map, 'rightclick', function (e) {
if (checkDistance(e.latLng)) {
if (viewModel.haveRolesToDoStuffOnProjectLevel()) {
geocoder.geocode({ location: e.latLng }, function (result) {
if (result.length > 0) {
var data = {
name: result[0].formatted_address.split(",")[0],
location: e.latLng,
address: result[0].formatted_address
}
if (viewModel.oldLocation()) {
moveLocationCreate(data);
} else {
startLocationCreate(data);
}
}
});
}
}
});
一切正常,直到我在移动设备中打开该应用程序。在移动设备上,右键单击 事件不会触发。我一直在寻找一种方法来实现长按移动设备之类的功能,但它不起作用。谁能帮我找到解决方案?
最佳答案
如果你尝试 this google maps event demo site在您的手机/平板电脑上,即使您长按,您也不会意识到没有任何反应。这只是意味着 Google map 不支持平板电脑事件。
但使用 jQuery,您可以检测长按或其他“仅限移动设备”的事件。但是,jQuery 不了解 map ,因此会告诉您点击的位置。
所以一个解决方案可能是同时使用这两者,Google Maps Click event,和 jQuery tabhold event .
首先让tabhold
设置一个flag,表示这个点击功能来自tabhold
;然后在 onclick 函数上,检查当前的点击事件是否来自 tabhold,如果是,则执行该操作。
我有一个快速 [jsfiddle 上的演示][4],我只是复制并粘贴了一些代码,所以它看起来有点难看。但希望它有所帮助。
关于javascript - 谷歌地图在手机上的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30888696/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!