Bing在自定义信息框html上映射点击事件

问题描述 投票:0回答:1

我无法为我的生活获得点击事件来处理自定义HTML Microsoft Bing Maps信息框元素。以下代码在Bing地图之外的任何li上触发事件,但不在内部:

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

有一些关于attaching "actions" to basic default infoboxes的文档,但没有关于自定义HTML信息框事件的信息。它们似乎已禁用所有自定义信息框的事件。谁能证实这一点?他们为什么要这样做?我怎么能绕过它呢?

javascript jquery bing-maps
1个回答
1
投票

试试示例网站

Examples

不确定jquery片段是否有效,如果信息框甚至包含“li”。

我在该html版本中放置了以下JS,这会创建一个事件并生成一条消息,将其放入运行框中以尝试:

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”(未提供),因此点击也可能没有效果。

© www.soinside.com 2019 - 2024. All rights reserved.