一起处理标记点击并双击谷歌地图

时间:2012-09-27 21:40:14

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

我有以下问题。 在我的谷歌地图应用程序上,我需要区分点击和doulbe点击标记。

因此,当我创建标记时,我会创建两个侦听器:

google.maps.event.addListener(markerTMP, 'click', (function(routeID) {
                return function() {
                    console.log('click '+routeID);
                }
            })(pointRoute));

google.maps.event.addListener(markerTMP, 'dblclick', (function(routeID) {
                return function() {
                    p('double click '+routeID);
                }
            })(pointRoute));

问题是当我使用双击时,也会使用click。 我的想法如何处理: 点击 - 创建一个超时,双击 - 删除它。

但有没有正常的方法来处理这个问题? 我无法在API参考中找到它。

3 个答案:

答案 0 :(得分:2)

这是我的解决方法。它使用全局变量来处理这两个函数。不是最有说服力的,但有效。

                google.maps.event.addListener(marker, 'click', function() {
                    x = 0
                    update_timeout = setTimeout(function(){
                        if (x == 0) {
                            // do something ;
                        };
                    }, 300);   
                });

                google.maps.event.addListener(marker, 'dblclick', function() {
                    x=1
                    // do something ;
                });

答案 1 :(得分:1)

在API中没有“官方”方式来处理这个问题。创建超时似乎是accepted approach

答案 2 :(得分:0)

尝试使用click事件和rightclick事件,而不是单击和dblclick。