1

ダブルクリック イベントを表示する Bing マップ API v7 のイベントが表示されません。これを行う方法はありますか?私が見逃したネイティブ サポートがないと仮定すると、タイマーを使用して独自のダブルクリック ハンドラーを作成する必要があると思います。

4

2 に答える 2

4

ダブルクリックイベントのみを使用する場合

Microsoft.Maps.Events.addHandler(this.map, 'dblclick', functionHandler)

問題を解決する必要があります

于 2012-08-29T12:23:04.957 に答える
4

クリックイベントにも問題がありました。実際には、通常のクリック イベントもダブルクリック イベント中に発生します。そのため、独自のダブルクリック ハンドラーを実装する必要がありました。マウスの右ボタンでも使用できるシングルクリック イベントのみを使用しているため、私のアプローチは右クリックに変換できます。

//Set up my Handler (of course every object can be the target)
Microsoft.Maps.Events.addHandler(map, 'click', Click);
//count variable, that counts the amount of clicks that belong together
myClick=0;

//A click fires this function
function click (e)
{
    //If it is the first click of a "series", than start the timeout after which the clicks are handled
    if (myClick == 0)
    {       
        //Target have to be buffered
        target= e;
        //accumulate the clicks for 200ms and react afterwards
        setTimeout("reaction(target)", 200);
    }
        //count the clicks
    myClick = myClick+1;
}

//At the end of timeout check how often a click has been performed and react
function reaction(e)
{
    if (myClick==1)
    {
        alert("Single Click!");
    }
    else (myClick==2)
    {
        alert("Double click!");
    }
        else (myClick==3)
        {
                alert("Tripple click");
        }
    //reset ClickCount to zero for the next clicks
    myClick = 0;
}

さらに、Bing-Maps の標準的なダブルクリック動作を削除してズームインすることも興味深いかもしれません。これは、次のコードで実現できます。

Microsoft.Maps.Events.addHandler(map, 'dblclick', function(e){
      e.handled = true;
});
于 2012-12-01T12:53:45.963 に答える