2015-04-21 26 views
0

我想遷移我現有的工作谷歌地圖代碼到Javascript基於對象的時尚,但我遇到了一些錯誤,無法弄清楚。最初加載所有標記,並在任何事件(單擊,拖動等)上拋出錯誤TypeError:gj未定義TypeError:gj未定義(谷歌地圖)雖然它遷移到Javascript OOP

我想下面行是錯誤的原因:

google.maps.event.addListener(mapObj.polymap, "dragend", mapObj.mapSearch()); 
     google.maps.event.addListener(mapObj.polymap.getPath(), "insert_at", mapObj.mapSearch()); 
     google.maps.event.addListener(mapObj.polymap.getPath(), "remove_at", mapObj.mapSearch()); 
     google.maps.event.addListener(mapObj.polymap.getPath(), "set_at", mapObj.mapSearch()); 

回答

3

google.maps.event.addListener的第三個參數有望成爲一個功能,但您提供的功能調用,而不是函數。

您必須在函數名後刪除括號:

google.maps.event.addListener(mapObj.polymap, "dragend", mapObj.mapSearch); 
    google.maps.event.addListener(mapObj.polymap.getPath(), "insert_at", mapObj.mapSearch); 
    google.maps.event.addListener(mapObj.polymap.getPath(), "remove_at", mapObj.mapSearch); 
    google.maps.event.addListener(mapObj.polymap.getPath(), "set_at", mapObj.mapSearch); 

//................. 

    google.maps.event.addDomListener(window, 'load', mapObj.init); 
+0

真棒,謝謝了! –

+0

但基本上你的方法並不是真正的OOP,你只需在對象中定義函數並調用這些函數,但這些函數不是對象本身的方法(什麼是OOP)。我現在要去上班了,我會告訴你如何做OOP-way以後的 –

+0

先生,請你能提供你的oop版本 –

相關問題