如何使用jQuery重新加载脚本

时间:2017-08-01 11:45:36

标签: javascript jquery html ajax

我是新来的,所以请耐心等待。我在滚动时使用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函数时重新加载无限滚动代码。任何人都可以指出我如何实现这一目标?感谢你的时间。

1 个答案:

答案 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响应中添加元素。也许尝试一些你只需要替换值的模板?