Почему событие VEMap onclick работает в других браузерах, но не в Firefox? - PullRequest
0 голосов
/ 06 декабря 2010

У меня есть элемент управления 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, а не в других моих браузерах?

1 Ответ

0 голосов
/ 11 декабря 2010

Это было трудно отследить, но оказывается, что при соблюдении следующих условий события VEMap прерываются.Они по-прежнему запускаются, но данные о критических событиях, такие как elementID, отсутствуют.

  1. Происходит только в Firefox
  2. Когда загружается инфраструктура Mootools JS (необязательно используется)

При выполнении этих условий возникает вышеупомянутая проблема.

Помните, что Joomla автоматически загружает mootools.Это то, что случилось со мной.

...