У меня есть элемент управления VEMap со следующими соответствующими битами кода:
map = new VEMap('map');
map.AttachEvent("onclick", DoContinents);
function DoContinents(event)
{
if (event.elementID != null)
{
//var shape = map.GetShapeByID(event.elementID);
//var id = shape.GetID();
//var id = event.elementID;
//alert (event.elementID);
if (event.elementID == 'msftve_1001_200000_10000')
{
map.SetCenterAndZoom(new VELatLong(15, -90), 2);
}
else if (event.elementID == 'msftve_1001_200001_10001')
{
map.SetCenterAndZoom(new VELatLong(48, 23), 2);
}
else if (event.elementID == 'msftve_1001_200002_10002')
{
map.SetCenterAndZoom(new VELatLong(4, 18), 2);
}
else if (event.elementID == 'msftve_1001_200003_10003')
{
map.SetCenterAndZoom(new VELatLong(43, 87), 2);
}
else if (event.elementID == 'msftve_1001_200004_10004')
{
map.SetCenterAndZoom(new VELatLong(-25, 134), 2);
}
cont.Hide();
vid.Show();
$('#sidebar_list').show();
$('#legend').show();
}
}
Он отлично работает в Chrome и даже в IE! Однако, когда я загружаю страницу в Firefox, ничего не происходит, когда я нажимаю на значки карты. После дальнейшего расследования я обнаружил, что событие запускается во всех браузерах и DoContinents запускается. В Chrome и IE event.elementID содержит идентификатор VEShape, который я щелкнул, но в Firefox event.elementID имеет значение null (даже при наличии объекта события)! Очевидно, это приводит к тому, что код в моем обработчике событий DoContinents не запускается. Почему это происходит в Firefox, а не в других моих браузерах?