问题描述
||
步骤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();
如果要保留该状态,则可能需要计算当前的手风琴项目。