我有一个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
,但它也没有用。
答案 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}}。