1

次の問題があります。私のグーグルマップアプリでは、マーカーのクリックとダブルクリックを区別する必要があります。

したがって、マーカーを作成するときは、2つのリスナーを作成します。

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

これが私の回避策です。グローバル変数を使用して、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 に答える