2015-02-11 41 views
2

2/16更新與新代碼以反映意見context.refresh()和/或Waypoint.refreshAll()不工作?

我有航點在頁面上正常工作用下面的代碼中發現的錯誤。請注意,我使用的是插件的3.1.1版,但我仍然使用類似於插件的2.x版的jQu​​ery語法來處理一些複雜的選擇器。此代碼的工作:

var stickTop = wrapper.waypoint({ 
    handler: function(direction){   
     var len = $(this.element).closest('.ctable').find('div.ctable-row').length; 
     if ((direction === 'down') && (len > 1)) { 
      $(this.element).closest('.ctable').find(stickTarget).addClass('stuck').css("top", $pageHeadOffset); 
     } 
     else if ((direction === 'up') && (len > 1)) { 
      $(this.element).closest('.ctable').find(stickTarget).removeClass('stuck'); 
     } 
    }, 
    offset: $pageHeadOffset, 
}); 

這是(仍然)罰款和工作正常,但我有一個調整大小,有效地使頁面更長的頁面上的其他元素。爲了解決這個問題,我已經試過另一個點擊目標調用Waypoint.refreshAll();stickTop.context.refresh();,像這樣:

$('.page-info-link').click(function(){ 
    $('.page-info').toggleClass('closed'); 
    $('.page-info-message').slideToggle(); 
    Waypoint.refreshAll(); 
}); 

但我不能得到刷新準確的信息。

有沒有辦法使用,如jQuery上面的語法(不通過元素:選項,還自稱刷新

更新2/16:

這個新的代碼現在會觸發控制檯錯誤:

$('.page-info-link').click(function(){ 
    $('.page-info').toggleClass('closed') 
    $('.page-info-message').slideToggle() 
    stickTop.refresh() 
}); 

錯誤: 「未定義是不是一個函數」

+0

您是否嘗試過加入[調試腳本](http://imakewebthings.com/waypoints/guides/debugging/),並尋找,如果它產生的任何錯誤控制檯作爲你通過網頁工作?我相信你的事情一般都是正確的,除了看起來你有一個固定的位置元素作爲一個航點。 – imakewebthings 2015-02-15 05:34:04

+0

你是對的,我錯誤地將固定位置添加到航點。我已經解決了這個問題,現在使用的是粘滯快捷方式使用的相同模型(在固定粘性元素周圍有一個包裝的div,它與粘性元素具有相同的指定高度)。 – alturnwall 2015-02-16 15:58:59

+0

我已經用新代碼更新了原始帖子,以及在控制檯中拋出了「未定義」錯誤。看起來好像debig腳本現在正在做任何事情。謝謝你的幫助。 – alturnwall 2015-02-16 16:26:37

回答

7

這裏有兩個問題:

  1. stickTop.refresh():我不知道你爲什麼改變了這個。首先,stickTop是一個數組,因爲$.fn.waypoint返回一個Waypoint實例數組,對於jQuery對象中的每個匹配元素都有一個實例。其次,refresh不是Waypoint實例上的方法,它是Context中的方法。 TLDR:堅持Waypoint.refreshAll()
  2. slideToggle是一個jQuery動畫。你試圖做的是在動畫完成後調用刷新,但它是一個異步函數。通過在它之後直接調用refreshAll,在動畫開始之前進行刷新。您需要在動畫的complete回調中調用刷新。

最終結果:

$('.page-info-message').slideToggle(function() { 
    Waypoint.refreshAll() 
}) 
+1

啊,這個工程!我完全忘記了異步功能。非常感謝支持和偉大的插件! – alturnwall 2015-02-17 22:23:52