2015-02-10 141 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