在移动设备上触摸谷歌地图的活动

时间:2015-06-17 10:18:28

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

在我的应用中,我使用谷歌地图,一旦用户右键单击,我就会在地图上创建位置。我有这个事件为我做伎俩

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);
                    }
                }
            });
        }
    }
});

在移动设备上打开应用程序之前,一切正常。在移动设备上,右键点击事件不会被激活。我已经搜索过一种方法,可以长时间点击手机,但它不起作用。任何人都可以帮我找到解决方案吗?

1 个答案:

答案 0 :(得分:3)

如果您在手机/平板电脑上试用this google maps event demo site,即使长按一下,也不会发生任何事情。这只是意味着谷歌地图不支持平板电脑活动。

但是使用jQuery,您可以检测到长时间点击或其他“仅限移动”事件。但是,jQuery不了解地图,因此,确实告诉您在哪里点击。

因此,一个解决方案可能是同时使用Google Maps Click event,jQuery tabhold event

首先,让tabhold设置一个标志,表示此点击功能来自tabhold;然后在onclick函数上,检查当前的click事件是否来自tabhold,如果是,请执行操作。

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