功能“未定义”

时间:2010-06-19 12:22:48

标签: javascript google-maps

我有这段代码

        <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未定义”。

你知道为什么吗?

1 个答案:

答案 0 :(得分:2)

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')" />