jQuery UI手风琴初始化第一个之后的后续调用

问题描述

|| 步骤1:使用div \“ foo \”和jqote2模板\“ tmpl_foo \”加载网页(jqote2是基于jQuery的模板系统)。
<div id=\"foo\"></div>

<script type=\"text/x-jqote-template\" id=\"tmpl_foo\">
    <![CDATA[
    <% for (i in this.bar) { %>
            <h3><%= this.bar[i].title %></h3>
            <div class=\"pane\"><%= this.bar[i].desc %></div>
    <% } %>
    ]]>
</script>
第2步:通过jQuery触发ajax查询,以从服务器检索数据,使用jqote2填充div \“ foo \”,然后在\“ foo \”上初始化jQuery UI手风琴。
var get_foo : function () {
    $.ajax({
        url     : url,type    : \"GET\",data    : \"\",dataType: \"json\",error   : function() { alert(\"Error loading html document\"); },success : function(res) {
            $(\"#foo\").empty().append(
                $(\'#tmpl_foo\').jqote({
                \'bar\': res.bar
                }) 
            ).accordion();
        }
    });
}

$(document).ready(function() {
    get_foo();
});
它工作得很漂亮。 在网页上,我还有其他链接,例如\“上一页\”和\“下一页\”(标准寻呼机功能),它们也触发fire2ѭ。这些操作还会导致正确获取新数据,并且新结果也将正确插入\“ foo \”中。但是,由于某种原因,手风琴没有初始化。我感到难过。原因可能是什么?     

解决方法

您必须先重置手风琴:
        $(\"#foo\").empty().append(
            $(\'#tmpl_foo\').jqote({
            \'bar\': res.bar
            }) 
        ).accordion(\'destroy\').accordion();
如果要保留该状态,则可能需要计算当前的手风琴项目。