1

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

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

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

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

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

4

3 回答 3

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 ;
                });
于 2016-07-10T16:32:56.547 回答
1

API 中没有“官方”的方式来处理这个问题。创建超时似乎是公认的方法

于 2012-09-27T21:49:03.627 回答
0

尝试使用单击事件和右键单击事件,而不是单击和 dblclick。

于 2012-09-27T21:49:32.190 回答