我有这个代码

        <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”。

你知道为什么吗 ?

最佳答案

mapload()仅在initialize()中定义。当您的onclick处理程序尝试调用它时,它不再存在。为了解决您的问题,一种快速而肮脏的解决方案是用mapload替换所有出现的window.mapload。所以写

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




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

09-30 19:25