2010-06-19 109 views
1

我有這樣的代碼功能「沒有定義」

 <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
     <script type="text/javascript"> 
     google.load("maps", "3", {other_params:"sensor=false"}); 
     google.load("jquery", "1.3.2"); 
     google.load("visualization", "1", {packages: ["columnchart"]}); 

     function initialize() { 

      // some actions... 

      function mapload(myfile) { 
        jQuery.get("trace_" + myfile + ".xml", {}, function(data) { 
         // some actions... 
        }); 
      } 

      mapload('ah'); 

     } 

     google.setOnLoadCallback(initialize); 
     </script> 

     <input type="button" value="Hunt Mesa" onclick="mapload('hunt')" /> 

第一個「mapload」工作正常

但的onclick按鈕,說:「mapload沒有定義」。

你知道爲什麼嗎?

回答

2

mapload()僅在initialize()內定義。當你的onclick處理程序試圖調用它時,它不再存在。爲了解決您的問題,一個快速的&骯髒的解決方案是用window.mapload替換所有出現的mapload。所以寫

 window.mapload = function (myfile) { 
       jQuery.get("trace_" + myfile + ".xml", {}, function(data) { 
        // some actions... 
       }); 
     } 

<input type="button" value="Hunt Mesa" onclick="window.mapload('hunt')" /> 
+0

OK MvanGeest ...所以我怎麼能叫 「mapload」 從的onclick按鈕? – Chris 2010-06-19 12:27:36

+0

我添加了解決方案。 – MvanGeest 2010-06-19 12:28:16

+0

這是行得通的;-)謝謝 – Chris 2010-06-19 12:31:57