我正在使用Django EL(Endless) Pagination在我的网站上实现延迟加载的Twitter样式分页。一切正常。但我希望我的用户能够通过单击按钮动态删除某些分页的结果。所以我添加了这个ajax调用:
$("main").on("click", ".close", function() {
let id = $(this).attr("id");
$(this).closest('div.col-sm-12').remove();
$.ajax({
url: urltomydeleteview,
timeout: 0,
method: 'POST',
})
.done((res) => {
... other DOM manipulations ....
})
});
这当然会产生一个错误:如果用户删除了几个元素并到达页面底部,则使用错误的参数(例如“ page = 2”,但是此页面可能不再存在)调用了惰性分页,并且我得到了404。如何在不重新加载页面的情况下告诉Django EL我的查询集已更改?
编辑:
我实现了这个可怕的技巧,只有当某些内容已被删除并且用户试图获取另一个页面时,它才会重新加载页面:
$('.endless_more').attr('href', "reload") <-- added this after .done in the ajax call
并在EL分页实例化上添加:
$.endlessPaginate({
paginateOnScroll: true,
contentSelector: '.endless_content_wrapper',
onClick: function(context) {
if (context.url === 'reload') {
location.reload();
return false
}},
});