如何为 pin 上的点击事件设置回调函数? 我需要绿色的针脚(一个位置)和红色的针脚(集群位置)。 我正在使用 v6 api。
这是目前的代码:
var shape = new VEShape(VEShapeType.Pushpin, new VELatLong(pin.position.lat, pin.position.lng));
shape.SetTitle('<h2>'+pin.overlay.headline+'</h2>');
shape.SetDescription('<p>'+pin.overlay.text+'</p>');
var pinIcon = new VECustomIconSpecification();
pinIcon.Image = '/images/map/pin.png';
pinIcon.TextContent = '.';
shape.SetCustomIcon(pinIcon);
最佳答案
正确的做法是覆盖 onclick 和 onmouseover VEMap.AttachEvent() 中的函数; AttachEvent 有很多返回值 有助于识别您单击/鼠标悬停的引脚,例如 pinID(VEMap.onclick() 方法的 elementID 返回值)。
您可以将 ID 与 map.ShowInfoBox() 和 map.GetShapeByID 结合使用以 点击后显示您的信息框。
阅读:VEMap.AttachEvent <-- Google,我会粘贴 URL,但我需要更多关于 StackOverflow 的代表
阅读:VEMap.onclick。另外,了解返回值:
读取所有鼠标事件 http://msdn.microsoft.com/en-us/library/bb412438.aspx
/*************************************
* Code snippets..
* For example purposes I'm going to do
* things a bit out of order.
*************************************/
// Attach your events in the map load callback:
map.AttachEvent("onmouseover", myFnForMouseOver);
map.AttachEvent("onclick", myFnForOnClick);
// Callback functions used in the AttachEvent(s) above..
function myFnForMouseOver(e){
if(e.elementID){
return true; // Disables the rollover ShowInfoBox()
}
}
function myFnForOnClick(e){
if(e.elementID){
// Show infobox using the PINs/Shapes actual ID, (return value from e.elementID)
map.ShowInfoBox(map.GetShapeByID(e.elementID));
return true;
}
}
/*
* end
*/
就是这样
- 贝克
关于javascript - Bing map 单击 Pin 上的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5070181/