javascript - 移动设备上谷歌地图的触摸事件

标签 javascript jquery google-maps google-maps-api-3

在我的应用程序中,我使用谷歌地图,一旦用户右键单击,我就会在 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设置一个标志,表明这个点击函数来自tabhold;然后在onclick函数上,检查当前的点击事件是否来自tabhold,如果是,则执行该操作。

我有一个快速的[jsfiddle 演示][4],我只是复制并粘贴了一些代码,所以它看起来有点难看。但希望它能有所帮助。

关于javascript - 移动设备上谷歌地图的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30888696/

相关文章:

javascript - 查找水平移动元素的每个 X、Y 位置

jQuery.each 问题

jQuery 图像从缓存交换?

android - 如何使用 google places 在 android 中获取一个城市中的所有百货商店?

javascript - Google map 和 JavaScript for() 循环的问题

javascript - 错误 :TypeError: Cannot find function getValue in object function mergeAcross

javascript - AngularJS:多种形式的服务器端验证

javascript - 在 ag-grid 中处于行编辑模式时可以阻止排序吗?

javascript - box-shadow 在 IE9 中是如何返回的?

php - 在 Web 应用程序中使用 Google Maps API