2015-02-10 154 views
0

所以我想对这个插件http://imakewebthings.com/waypoints/重新初始化航点

很简单的东西的超薄文档工作,每次我的页脚是考虑到,我取通过AJAX新的元素和追加他们。除了航点一旦被击中,它不会再次运行,我做错了什么?

 $('#footer').waypoint(function (direction) { 
        var $appender = $('.more_timeline').last(); 
      var data = {}; 
      var $wrapper = $('.container'); 
      var $yearwrapper = $wrapper.find('.year').last(); 
      data.current_year = $yearwrapper.find('.year_timeline').html(); 
      var $monthwrapper = $wrapper.find('.month').last(); 
      data.current_month = $monthwrapper.find('.month_timeline').attr('month-key'); 
      data.offset = $('.time_offset').last().attr('offset'); 

      console.log(data); 

      $.ajax({ 
       type: 'post', 
       data: data, 
       url: 'jquery/wiki/extendtimeline', 
       success: function (response) { 
        $appender.after(response); 
        $appender.hide(); 

       } 
      }); 

     }, { 
      offset: '100%' 
     }) 

可以现场看到: http://kaboodle.io/u/calbert/timeline

回答

2

航点保存您的页脚的位置时加载页面。当您滚动到他的位置时(在第一次ajax呼叫时),不会重新计算航点的位置。

你将不得不重新创建航点或每次到达它的时候更新它,你让你的Ajax调用..

事实上,你会看到,如果你先滚动,比返回到首页和重新上一页页脚位置,它将加载下一个内容。

尝试使用

$('#footer').waypoint('destroy') — Unregister waypoints and unbind all handlers. 
$('#footer').waypoint('remove') — Unregister waypoints but leave handlers intact. 

作出这样的设置unsetter它的航点和一个功能。 当你进行AJAX调用时,你只需要再次调用unsetter而不是set。和所有应罚款:)

试试这个:

// JavaScript source code 
var footer = $('#footer'); 
footer.waypoint(getNextFilms, { 
    offset: '100%' 
}) 

function getNextFilms(direction) { 
    var $appender = $('.more_timeline').last(); 
    var data = {}; 
    var $wrapper = $('.container'); 
    var $yearwrapper = $wrapper.find('.year').last(); 
    data.current_year = $yearwrapper.find('.year_timeline').html(); 
    var $monthwrapper = $wrapper.find('.month').last(); 
    data.current_month = $monthwrapper.find('.month_timeline').attr('month-key'); 
    data.offset = $('.time_offset').last().attr('offset'); 

    console.log(data); 

    $.ajax({ 
     type: 'post', 
     data: data, 
     url: 'jquery/wiki/extendtimeline', 
     success: function (response) { 
      $appender.after(response); 
      $appender.hide(); 
      footer.waypoint('destroy'); 
      footer.waypoint(getNextFilms, { 
       offset: '100%' 
      }) 
     } 
    }); 
} 
+0

这就是我想,但我怎么做呢?他们的新文档是完全空的? – Callombert 2015-02-10 15:28:15

+0

使用此项: $('#footer')。waypoint('destroy')或 $('#footer')。waypoint('remove') – Crocsx 2015-02-10 15:38:00

+0

我看到您引用并删除的帖子似乎是贬值。销毁工作正常,但我仍然需要重新初始化它,我已经尝试“启用”,但这不起作用。 – Callombert 2015-02-10 15:39:34