2010-06-19 74 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