0

Bing Maps AJAX Control 7.0 を使用しています

ドライブ ルートの一部である画鋲にカスタム イベント ハンドラーを追加したいと考えています。

自分で作成して参照しているマップ エンティティにカスタム イベントを追加する方法を知っています。ただし、ドライブ ルートを構成するエンティティは内部で作成され、マップに自動的に追加されます。マップに追加する前または後にイベント ハンドラーをアタッチする方法はありますか?

具体的には、ドライブ ルート上にあるウェイポイント プッシュピンにカスタム onmouseover イベントを追加して、ホバーしたときにカスタム アイコンが表示されるようにしたいと考えています。のプロパティを:hover介してプッシュピンに疑似セレクターを持つ css クラスを追加するという提案を読みましたが、これは機能しません。AJAX コントロール自体は、javascript イベントを使用してマウス オーバー時のアイコン イメージを変更するため、css プロパティを on に設定しても機能せず、デフォルトのホバー アイコンによって覆われます。typeNamePushpinOptionsbackground:hover

onmouseoverカスタム アイコンを表示し、デフォルトの動作を無効にできるように、運転中のウェイポイント プッシュピンにカスタム イベントを追加する必要があります。どうすればいいですか?ありがとう。

4

2 に答える 2

1

オブジェクトの文書化されていないプロパティがあることを発見しましたPushpinOptions-hoverIcon

マップ上のエンティティを反復処理するオブジェクトのdirectionsUpdatedイベントにコードを追加しました。DirectionsManagerエンティティを調べたところ、内部プロパティと内部プロパティWaypointの両方があることがわかりました。中に物件があるので、物件も使えるかチェックしてみました!_icon_hoverIconiconPushpinOptionshoverIcon

私の知る限り、hoverIconプロパティは文書化されていません。しかし、これははるかに簡単な方法であり、カスタムホバー画像を画鋲に追加するための適切な方法である可能性があります。

これがMicorsoftに報告され、ドキュメントを更新できるようになっていると役に立ちます。私はこれまでマイクロソフトにドキュメントエラーを報告したことがないので、これを行うための最良の方法を知っている場合は私に知らせてください。

于 2012-05-22T23:13:14.027 に答える
1

私が思いつく唯一の解決策は、ドライブ ルートの画鋲の HTML 出力を調べて、それらのイベント バブリングをハックすることです。ドライブ ルート プッシュピンの HTML を調べたところ、V7 ajax API ではidすべてプレフィックス で始まっているようですDDWaypointPushpin。したがって、ハッキーな解決策は、DOM でこれらの画鋲を見つけて、それらの既定のイベント ハンドラーを何らかの方法でオーバーライドすることです。たとえば、画鋲でのマウスオーバー イベントの既定の動作を防止したい場合は、jquery を使用して ID 文字列を照合し、マウスオーバー イベントにバインドして、バブルアップを防止できます。

        $("div[id*='DDWaypointPushpin']").bind('mouseover', function (e) {
            //$(this) will match your pushpin div, do whatever you want with it
            // Stop the event from bubbling up, so the default MS mouseover behavior is prevented
            e.stopPropagation();
        });

カスタム アイコンを表示する場合は、ハンドラーで の下の要素をmouseover探し、その属性を好きなものに変更します。<img>$(this)src

于 2012-05-21T23:13:05.533 に答える