我想將手風琴添加到動態添加標籤。此選項卡由服務器的回發數據生成。我應該怎麼做?jquery ui手風琴無法在動態添加標籤上工作
的回傳的數據是一樣的東西
<div id ="newtab">
<div id = "accordion"> ...</div>
...
</div>
我
$("#accordion1).accordion();
添加標籤之前,但它不工作。
我想將手風琴添加到動態添加標籤。此選項卡由服務器的回發數據生成。我應該怎麼做?jquery ui手風琴無法在動態添加標籤上工作
的回傳的數據是一樣的東西
<div id ="newtab">
<div id = "accordion"> ...</div>
...
</div>
我
$("#accordion1).accordion();
添加標籤之前,但它不工作。
好像你已經在問題發現的問題:該選項卡添加
$("#accordion1).accordion();
之前,但它不工作。
將新元素添加到DOM後(即在AJAX調用的success
函數中),您需要再次初始化手風琴。
您的jQuery選擇器$("#accordion")
僅選擇當前在文檔中的元素。你可以使用像.livequery
這樣的插件在新元素上自動調用你想要的函數。
如果你不反對使用上述的liveQuery插件,這裏有一個例子:
$("#accordion").livequery(function() {
$(this).accordion();
});
這將使任何元素添加到DOM與id
#accordion
成手風琴。
我正在尋找一個解決類似的問題,當我遇到這個帖子來了。但是在這裏你將不得不導入一個插件。
我試過另一個選項,它對我很有幫助。
當添加動態數據時,調用手風琴的銷燬方法。像這樣:
.accordion("destroy");
,並使用相同的選項重新初始化手風琴,你施加於DIV較早:)
謝謝!這似乎比我找到的任何解決方案都更好。儘管如此,它仍然在第二個.accordion()實例上感覺有點小錯誤。此外,任何方式來檢查一個元素是否已被手風琴之前? (我只是把「destroy」命令放在try/catch之前.accordion() – Buchannon
所以我擔心的是,反正是有做現場直播手風琴? – Seen
@Seen:使用插件,當然有!如果這是您想要的路線,我會添加一個示例。 –
@Seen:請參閱我的更新回答。 –