如何为图钉上的点击事件设置回调函数?
我需要将绿色的一个(一个位置)和红色的一个(群集位置)两个引脚都固定。
我正在使用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
阅读: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
*/
而已
贝克