我是新来的,所以请耐心等待。我在滚动时使用jQuery无限滚动来加载内容。虽然这很好,但这个内容会随着使用ajax的用户输入而改变。我想要做的是在ajax内容加载上重新加载/刷新无限滚动代码。
这是无限滚动代码
插件:https://infinite-scroll.com/
$('#content').infiniteScroll({
// options
path: '#page-nav a',
append: '.post',
history: false,
status: '.page-load-status',
});
这是我重新加载内容的ajax代码。
$("#searchContent :input").change(function() {
var formData = {
'title' : $('input[name=title]:checked').val(),
'tags' : $('input[name=tags]').val()
};
$.ajax({
type: "POST",
url: "get_content.php",
data: formData,
cache: false,
dataType:'json',
success: function(json) {
$("#content").html(json.content);
}
});
});
我想要做的就是在执行ajax post函数时重新加载无限滚动代码。任何人都可以指出我如何实现这一目标?感谢你的时间。
答案 0 :(得分:1)
您需要为新DOM重新启动插件:
b.js
附注
通常无限滚动意味着自动页面而不点击分页。但您只是删除旧内容并添加新内容而不是附加到现有元素。你到底想要做什么?
尝试使用$("#searchContent :input").change(function() {
var formData = {
'title': $('input[name=title]:checked').val(),
'tags': $('input[name=tags]').val()
};
$.ajax({
type: "POST",
url: "get_content.php",
data: formData,
cache: false,
dataType: 'json',
success: function(json) {
$("#content")
.html(json.content)
.infiniteScroll({
// options
path: '#page-nav a',
append: '.post',
history: false,
status: '.page-load-status',
});
}
});
});
代替$('form').serialize()
您正在直接从json响应中添加元素。也许尝试一些你只需要替换值的模板?