2010-12-06 53 views
0

我有與下面的代碼相關的位VEMap控制:爲什麼VEMap onclick事件在其他broswers但不是Firefox中運行?

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的ID,但在Firefox中event.elementID爲空(即使有事件對象)!顯然這會導致我的DoContinents事件處理程序中的代碼無法運行。爲什麼會發生在Firefox而不是我的其他瀏覽器?

回答

0

這是一個很難追查,但事實證明,如果滿足以下條件,VEMap事件中斷。它們仍然會被觸發,但重要事件數據(如elementID)缺失。

  1. 只有當(不一定被使用)JS框架正在加載的mootools的發生在Firefox

當這些條件滿足時發生上述問題。

請注意,Joomla會自動加載mootools。這是發生在我身上的事情。

相關問題