[英]Is it possible to capture events of internally created bing maps entities?
我正在使用Bing Maps AJAX Control 7.0
我想為作為駕駛路線一部分的圖釘添加自定義事件處理程序。
我知道如何將自定義事件添加到我自己創建的地圖實體並引用。 但構成駕駛路線的實體在內部創建並自動添加到地圖中。 有沒有辦法在添加到地圖之前或之后附加事件處理程序?
具體來說,我想將自定義onmouseover事件添加到行車路線上的航點圖釘上,以便在懸停時顯示自定義圖標。 我已經閱讀了一個建議,通過PushpinOptions
的typeName
屬性向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.