2010-12-06 28 views
0

私は、コードの以下の関連ビットとVEMapコントロールを持っている:なぜVEMapのonclickイベントは他のブロウザーでは動作しますが、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はnullです(イベントオブジェクトがあるにもかかわらず)!明らかに、これによりDoContinentsイベントハンドラのコードが実行されなくなります。なぜこれはFirefoxでは起こりますが、他のブラウザでは起こりませんか?

答えて

0

これは追跡が難しいものでしたが、以下の条件が満たされた場合、VEMapイベントが中断します。彼らはまだ発砲しますが、elementIDのような重要なイベントデータはありません。

  1. MooToolsのJSフレームワークがロードされている場合にのみ、これらの条件が満たされた場合、前述の問題が発生

(必ずしも使用されていない)Firefoxの

  • で起こります。

    Joomlaは自動的にmootoolsを読み込むことに注意してください。これが私に起こったことです。

  • 関連する問題