2011-09-07 106 views
1

我試圖添加一個谷歌內部的一個jQuery的手風琴(http://jqueryui.com/demos/accordion/)映射infoBubble添加谷歌地圖infoBubble內的手風琴(從谷歌地圖工具庫)

我第一添加類似於

的標記
<div id="accordion"> 
    <h3><a href="#">First header</a></h3> 
    <div>First content</div> 
    <h3><a href="#">Second header</a></h3> 
    <div>Second content</div> 
</div> 

到infoBubble。但我無法將任何事件附加到上述標記上。

當我嘗試調用$(「#accordion」).accordion();在domready事件裏面類似於

google.maps.event.addListener(infoBubble, 'domready', function() { 
    $("#accordion").accordion(); 
}); 

它似乎沒有附加事件。

我不確定我的代碼有什麼問題。有人可以幫助我這個。

回答

2

您的代碼不起作用,因爲它在信息存在的手風琴之前正在運行。您需要放置該代碼,以便在設置infowindow的內容後調用該代碼。它不僅需要在打開後運行,而且還需要在打開後運行幾百毫秒。 (您必須在所有瀏覽器中進行測試才能找到合適的數量 - 我隨意選擇了500毫秒,並且工作正常)。查看Infobubble代碼後,我很失望地發現,除非錯過了某些內容,否則不會發生火災當打開完成時。

不過,我能得到它的工作由您鏈接到並在標記的點擊回調下面的例子將線122這個代碼(infobubble打開後):

setTimeout(function() { 
     $("#accordion").accordion(); 
    }, 500); 

這不是一個最佳解決方案,但至少可以證明問題並希望能夠找到正確的解決方案。

+1

非常感謝。添加內容時,我修改了infobubble代碼以觸發domready事件。 – Sivakumar

+0

嗨!您可以發佈在infobubble.js中所做的更改嗎?謝謝! –