在javascript中创建html时变量未定义

时间:2016-12-20 14:38:16

标签: javascript html

我有一个html文件,其中javascript gmap对象的新实例已分配给gMap

中的变量$(document).ready

现在,我使用gmap调用onClick属性中gMap.function_a()对象的函数,效果非常好。

现在我的问题:在定义gmap对象的js文件中,我也创建了html,并希望分配一个调用函数的onClick属性。 但是gMap未定义。我怎样才能从那里访问它?

HTML文件:

<script>
    var gMap;
    $(document).ready(function(){
        gMap  = new gmap({
            ...
        });
    });
</script>
</head>
<body>
<a onclick="gMap.function_a(gMap.myMap)></a>  //works

JavaScript文件:

var gmap = (function () {
var myMap;
...}
gmap.prototype = {
    //here is a function where a google map is created and assigned to myMap
    function_b: function() {
        var link = '<a onClick="gMap.myMap.setZoom(18);">...</a>';  //Cannot read property 'setCenter' of undefined
        $(#container).append(link);
    }

我也尝试拨打myMap.setZoom而不是gMap.myMap.setZoom,但它也没有用。

1 个答案:

答案 0 :(得分:0)

似乎在你的HTML代码中:

<script>
    var gMap;
    $(document).ready(function(){
        gMap  = new gmap({
            ...
        });
    });
</script>
</head>
<body>
<a onclick="gMap.function_a(gMap.myMap)></a>  //works

onClick执行.function_a() new gmap的有效实例的"undefined"作为参数,因此如果该函数存在,则&#34;工作&#34;,它做了什么。

在您的第二个示例中,您尝试将.myMap.setZoom()作为"undefined"的属性运行,并且因为未定义的属性没有属性而抛出错误。

我建议您将您在html示例中编写的所有代码放在.js文件中,使用正确的值从那里添加<a>标记,并使用{{html>从html中请求它1}}。