2016-08-17 77 views
0

我不能爲我的生活得到一個點擊事件工作在自定義html微型$ oft bing地圖信息框元素。下面的代碼觸發對Bing地圖的任何外履而不是內部的事件:Bing地圖點擊事件定製信息框html

$('body').on('click', 'li', function (e) { 
    console.log("target:", e.target); 
}); 

有上attaching "actions" to basic default infoboxes一些文檔,但是,自定義HTML信息框事件沒有資料。看起來他們禁用了所有自定義信息框事件。任何人都可以確認嗎?他們爲什麼要這樣做?我怎樣才能解決它?

回答

1

嘗試示例站點

Examples

不知道jQuery的片段將工作,如果該信息框,甚至包含一個「立」。

我放入下列JS在HTML版本,這將創建的事件,併產生一個消息,將其放入運行框中嘗試:

map.entities.clear(); 
function handlerEvent1() 
{ 
displayAlert('Handler1'); 
} 
function handlerEvent2() 
    { 
displayAlert('Handler2'); 
} 
function handlerEvent3() 
{ 
displayAlert('Handler3'); 
} 
var infoboxOptions = {width :200, height :100, showCloseButton: true, zIndex: 0, offset:new Microsoft.Maps.Point(10,0), showPointer: true}; 
var defaultInfobox = new Microsoft.Maps.Infobox(map.getCenter(), infoboxOptions);  
map.entities.push(defaultInfobox); 
defaultInfobox.setHtmlContent('<div id="infoboxText" style="background-color:White; border-style:solid;border-width:medium; border-color:DarkOrange; min-height:100px;width:240px;"><b id="infoboxTitle" style="position:absolute; top:10px; left:10px; width:220px;">myTitle</b><div id="infoboxDescription" style="position:absolute; top:30px; left:10px; width:220px;" onclick="handlerEvent3()">Description</div></div>'); 
從示例代碼

而且,是的document.ready不是等待,所以你應該在頁面或可替代的底部放置你的腳本:

$(document).ready(function() { 
    $('body').on('click', 'li', function (e) { 
    console.log("target:", e.target); 
    }); 
}); 

的點擊也可能沒有工作,由於「LI」被嚴重呈現的信息框代碼(未提供)。

+0

bing地圖示例不包含HTML內容的信息框。與我所擁有的最接近的是https://www.bingmapsportal.com/isdk/ajaxv7#Infobox20,沒有自定義事件的文檔。 – Organic

+0

我已經添加了一個可以在HTML中運行的例子,它對你有幫助嗎?如果沒有,您可能需要提供完整的HTML - 或者更多關於您想要實現的信息。 「說明」文本是可點擊的,並出現一條消息。 – PeterS

+0

啊,是的,這是行不通的。謝謝!你知道爲什麼這個工作,並通過jQuery設置點擊事件不? – Organic