这是一个问题:
我需要jquery来执行一些PHP脚本然后返回一些结果。页面上有一个分页(由php生成)。所以可能有两种情况。用户从外部链接转到该页面=>分页从一开始就开始。或者用户选择页面=> jquery再次运行php并获得新的分页和结果。 这是一个脚本:
var page = '';
$.getJSON("test.php", {resid: "[[*id]]"}, function(output) {
$('#testdiv').html(output.content).show();
$('#pagination').html(output.pagination).show();
$('a.pagenav').click(function() {
page = $(this).attr('href');
$.getJSON("test.php", {resid: "[[*id]]", spp: page}, function(output) {
$('#testdiv').html(output.content).show();
$('#pagination').html(output.pagination).show();
});
return false;
});
});
该脚本适用于inilial load(生成分页),然后一次选择页面。但是下次我选择一个页面时,它只是跟着它的网址。 需要帮忙 ) THX
答案 0 :(得分:1)
您遇到问题的原因是您单击的下一页不再绑定点击处理程序。您需要将事件绑定到另一个元素,即使在加载新页面后该元素也存在。在您的情况下,#pagination
似乎是一个很好的候选人。
var page = '';
$.getJSON("test.php", {resid: "[[*id]]"}, function(output) {
$('#testdiv').html(output.content).show();
$('#pagination').html(output.pagination).show();
});
$('#pagination').delegate('a.pagenav', 'click', function() {
page = $(this).attr('href');
$.getJSON("test.php", {resid: "[[*id]]", spp: page}, function(output) {
$('#testdiv').html(output.content).show();
$('#pagination').html(output.pagination).show();
});
return false;
});
一种不太推荐的方法(但更容易重构代码)是使用live()
,它将事件绑定到DOM树的根元素。
$('a.pagenav').live('click', function() {
...
});