【发布时间】:2015-12-01 02:17:30
【问题描述】:
我有一个 jquery 代码来加载页面中的数据。此代码中关于分页的部分第一次有效,第二次只有在页面刷新后才有效。
-当我第一次点击分页中的页面链接时,jquery代码可以正常工作,并且可以很好地调用ajax查询。
-第二次点击分页页面的链接时,jquery代码被忽略,分页中的链接就像没有jquery代码一样作为一个简单的链接。
<div id="mydiv">
{% for entity in entities %}
//...
{% endfor %}
{{ knp_pagination_render(entities) }}
</div>
<script>
$(document).ready(function () {
$("ul#pagination a").on('click', function (e) {
e.preventDefault();
$('ul#pagination li.active').removeClass("active");
var route = $(this).attr('href');
window.history.pushState(null, "Title", route);
return loadPage(route);
});
function loadPage(route) {
$.ajax({
type: 'get',
dataType: 'html',
url: route,
success: function (msg) {
if (msg === undefined) {
alert('error');
}
else {
$('#mydiv').html(msg);
}
}
});
}
window.onpopstate = function () {
loadPage(window.location.href);
};
});
</script>
【问题讨论】:
-
ul#pagination在#mydiv内吗? -
可能是因为它是动态生成的。像...
$(document).on('click', 'ul#pagination a', function(e){... -
是的,
ul#pagination在分页中<ul class="pagination" id="pagination"> -
«return loadPage(route);»的作用是什么?