2015-02-11 62 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