2016-12-20 159 views
0

時創建的HTML我在那裏的JavaScript gmap對象的新實例被賦值給變量gMap$(document).ready變量未定義在javascript

一個html文件,現在我稱之爲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,但它也不能工作。

+2

邊注:不要將其命名兩個不同的變量'gMap'和'gmap',你可能會混淆他們兩個。 –

+0

你什麼時候看到「gMap is undefined」錯誤?當你點擊鏈接? –

+0

@Rocket危險品是 – maidi

回答

0

好像在你的HTML代碼:

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

onClick執行的new gmap"undefined"作爲一個參數一個有效的實例的.function_a(),所以如果函數存在其「作品」,但它的東西。

在第二個示例中,您嘗試運行.myMap.setZoom()作爲"undefined"的屬性,並且由於undefined不能具有屬性而引發錯誤。

我建議你把你寫的html代碼中的所有代碼放在你的.js文件中,然後在那裏添加<a>標籤,並使用<script src="">