7
我在試圖拼湊一個有點動態的Google地圖顯示時遇到了一些奇怪的問題。點擊時,我在地圖上覆蓋了一個我想調用的函數。最初,我擁有了一切硬編碼,所以我不得不爲每個疊加這樣的功能:如何在不立即運行的情況下將參數傳遞給函數?
google.maps.event.addListener(southEast, 'click', showSouth);
function showSouth() {
// do stuff
}
這個工作沒有問題,但後來我做了整個頁面更動態的,所以我決定做一個函數,將通過一個ID然後根據這個顯示,這就是我原本應該設置的。我改變了代碼,看上去就像這樣:
google.maps.event.addListener(southEast, 'click', showArea(1));
function showArea(id) {
// do stuff based on that id
}
功能工作,但問題是,它立即調用頁面加載。經過研究,我瞭解到,當您使用圓括號調用函數時,該函數將立即調用,然後返回值被引用。 source
因此,現在我有點卡住瞭如何將該ID傳遞給函數而不立即調用該函數。我發現一些這樣做的hacky方式可能工作,但我覺得這不應該是我必須一起破解的東西...
兩者都像魅力一樣工作。非常感謝! – 2012-03-09 18:04:38
@MattMcClure:不客氣。 – 2012-03-09 18:14:12
謝謝@squint!返回函數解決了我在初始化階段執行函數的調用問題,而不是在執行階段。 – 2016-10-27 14:54:08