簡體   English   中英

是否有可能捕獲內部創建的bing映射實體的事件?

[英]Is it possible to capture events of internally created bing maps entities?

我正在使用Bing Maps AJAX Control 7.0

我想為作為駕駛路線一部分的圖釘添加自定義事件處理程序。

我知道如何將自定義事件添加到我自己創建的地圖實體並引用。 但構成駕駛路線的實體在內部創建並自動添加到地圖中。 有沒有辦法在添加到地圖之前或之后附加事件處理程序?

具體來說,我想將自定義onmouseover事件添加到行車路線上的航點圖釘上,以便在懸停時顯示自定義圖標。 我已經閱讀了一個建議,通過PushpinOptionstypeName屬性向PushpinOptions添加一個帶有偽:hover選擇器的css類但這不起作用。 AJAX控件本身使用javascript事件來更改鼠標懸停的圖標圖像,因此設置background css屬性:hover永遠不會起作用,它會被默認的懸停圖標覆蓋。

我需要在驅動航路點圖釘上添加一個自定義onmouseover事件,以便我可以顯示自定義圖標並禁用默認行為。 我該怎么做呢? 謝謝。

我能想到的唯一解決方案是檢查驅動器路徑圖釘的HTML輸出並破解它們的事件冒泡。 我檢查了驅動器路徑圖釘的HTML,並且使用V7 ajax api他們的id似乎都以前綴DDWaypointPushpin 因此,hacky解決方案將是在DOM中找到這些圖釘並以某種方式覆蓋它們上的默認事件處理程序。 例如,如果要阻止圖釘上鼠標懸停事件的默認行為,可以使用jquery匹配id字符串並綁定到mouseover事件,並防止它冒泡。

        $("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處理程序中查找$(this)下的<img>元素,並將其src屬性更改為您喜歡的任何內容。

我發現PushpinOptions對象有一個未記錄的屬性 - hoverIcon

我在DirectionsManager對象的directionsUpdated事件中添加了一些代碼,這些事件迭代了地圖上的實體。 我查看了Waypoint實體,看到它們同時具有_icon_hoverIcon內部屬性。 由於PushpinOptions有一個icon屬性,我檢查了是否也可以使用hoverIcon屬性,它可以!

據我所知, hoverIcon屬性沒有記錄。 但這是一種更簡單的方法,可能是將自定義懸停圖像添加到圖釘的正確方法。

如果將此報告給Micorsoft以便他們可以更新他們的文檔,將會有所幫助。 我之前從未向Microsoft報告過文檔錯誤,如果您知道最好的方法,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM