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();
});
它工作得很漂亮。
在网页上,我还有其他链接,例如“上一页”和“下一页”(标准寻呼机功能),它们也会触发 get_foo()
。这些操作还会导致正确获取新数据,并且新结果也会正确插入到“foo”中。然而,由于某种原因,手风琴没有被初始化。我很困惑。原因可能是什么?
Step 1: Load a web page with a div "foo" and jqote2 template "tmpl_foo" (jqote2 is a jQuery-based templating system).
<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>
Step 2: Fire an ajax query via jQuery to retrieve data from the server, fill the div "foo" using jqote2, and init the jQuery UI accordion on "foo".
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();
});
It works beautifully.
On the web page I also have other links, such as "previous page" and "next page" (standard pager functionality) that also fire get_foo()
. These actions also result in getting new data correctly, and the new results are inserted into "foo" correctly as well. However, for some reason the accordion doesn't get initialized. I am stumped. What could the reason be?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须首先重置手风琴:
如果您想保持该状态,您可能需要计算当前的手风琴项目。
You have to reset the accordion first:
You may need to calculate the current accordion item, if you want to keep that state.