Pregunta

Tengo un control VEMap con los siguientes bits correspondientes de código:

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();
        }
     }

Funciona muy bien en Chrome, e incluso en IE! Sin embargo, cuando me carga la página en Firefox no pasa nada cuando hago clic en mi mapa de iconos. Tras realizar investigaciones adicionales descubrí que se activa el evento en todos los navegadores y DoContinents carreras. En Chrome e IE, event.elementID contiene el ID de la VEShape hice clic en Firefox, pero event.elementID es nula (aunque no es un objeto de evento)! Obviamente, esto hace que el código en mi controlador de eventos DoContinents no correr. ¿Por qué esto sucederá en Firefox pero no mis otros navegadores?

¿Fue útil?

Solución

Esto era algo difícil de localizar pero resulta que si se cumplen las siguientes condiciones, eventos VEMap rompen. Todavía datos de incendios, sino de sucesos críticos, tales como elementID no se encuentra.

  1. Sólo ocurre en Firefox
  2. Cuando está siendo cargado marco los mootools JS (no se utiliza necesariamente)

Cuando estas condiciones se cumplen el problema antes mencionado se produce.

Tenga en cuenta que Joomla mootools carga automáticamente. Esto es lo que me pasó.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top