Шаг 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: Запустите ajax-запрос через jQuery для получения данных с сервера, заполните div «foo» с помощью jqote2 и инициализируйте аккордеон пользовательского интерфейса jQuery на «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();
});
Это прекрасно работает.
На веб-странице у меня также есть другие ссылки, такие как «предыдущая страница» и «следующая страница» (стандартная функциональность пейджера), которые также активируют get_foo()
. Эти действия также приводят к правильному получению новых данных, и новые результаты также правильно вставляются в "foo". Однако по какой-то причине аккордеон не инициализируется. Я в тупике. В чем может быть причина?