在我的应用中,我使用谷歌地图,一旦用户右键单击,我就会在地图上创建位置。我有这个事件为我做伎俩
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);
}
}
});
}
}
});
在移动设备上打开应用程序之前,一切正常。在移动设备上,右键点击事件不会被激活。我已经搜索过一种方法,可以长时间点击手机,但它不起作用。任何人都可以帮我找到解决方案吗?
答案 0 :(得分:3)
如果您在手机/平板电脑上试用this google maps event demo site,即使长按一下,也不会发生任何事情。这只是意味着谷歌地图不支持平板电脑活动。
但是使用jQuery,您可以检测到长时间点击或其他“仅限移动”事件。但是,jQuery不了解地图,因此,确实告诉您在哪里点击。
因此,一个解决方案可能是同时使用Google Maps Click event,和jQuery tabhold event。
首先,让tabhold
设置一个标志,表示此点击功能来自tabhold
;然后在onclick函数上,检查当前的click事件是否来自tabhold,如果是,请执行操作。
我有一个快速[关于jsfiddle的演示] [4],我只是复制并粘贴了一些代码,所以看起来很难看。但希望它有所帮助。