Правильный способ сделать это - переопределить функции onclick и onmouseover в VEMap.AttachEvent ();AttachEvent имеет много возвращаемых значений, полезных для определения того, какой контакт вы щелкаете мышью, например, pinID (возвращаемое значение elementID для метода VEMap.onclick ()).
Вы можете использовать идентификатор в сочетании с map.ShowInfoBox() и map.GetShapeByID, чтобы отображать вашу инфобокс при нажатии.
READ: VEMap.AttachEvent <- Google, что я вставил бы URL-адрес, но мне нужно больше повторений в StackOverflow </p>
ЧИТАЙТЕ: VEMap.onclick.Также, поймите возвращаемые значения:
READ Все события мыши 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
*/
Вот и все