jquery ui accordion没有在动态添加的选项卡上工作

时间:2011-08-02 01:00:28

标签: jquery jquery-ui

我想将手风琴添加到动态添加的标签中。此选项卡由服务器的回发数据生成。我该怎么办?

回发后的数据类似于

<div id ="newtab">
<div id = "accordion"> ...</div>
...
</div>

我有

$("#accordion1).accordion();
添加选项卡之前

,但它不起作用。

2 个答案:

答案 0 :(得分:4)

当我遇到这篇文章时,我正在寻找类似问题的解决方案。但在这里你必须导入一个插件 我尝试了另一个选项,它对我有用。

添加动态数据后,调用手风琴的destroy方法。像这样:

.accordion( "destroy" );

并使用相同的选项再次初始化手风琴,您之前应用于div:)

答案 1 :(得分:3)

好像你已经在问题中找到了问题:

  

$("#accordion1).accordion();

     

在添加标签之前,但它无效。

在将新元素添加到DOM之后(即在AJAX调用的success函数中),您需要再次初始化手风琴。

您的jQuery选择器$("#accordion")仅选择当前位于文档中的元素。您可以使用.livequery之类的插件在新元素上自动调用您想要的函数。


如果你不反对使用上面提到的livequery插件,这是一个例子:

$("#accordion").livequery(function () {
    $(this).accordion();
});

这将使用id #accordion添加到DOM的任何元素成为手风琴。

示例: http://jsfiddle.net/andrewwhitaker/HBFnJ/