$(this)不适用于航点

时间:2015-06-17 10:01:25

标签: javascript jquery html5 this jquery-waypoints

$(this)属性与waypoints.js无关。

我的Javascript:

$('.dipper').waypoint(function() {
    $(this).addClass('test');
}, { offset: '100%' });

奇怪的是,本守则在我的网站上运作良好:

$('.dipper').waypoint(function() {
    $('.dipper').addClass('test');
}, { offset: '100%' });

在这种情况下,我使用.dipper代替$(this)。您可以在我的网站上查看:http://www.sq-media.de/weboptimierungen/rehfeld

2 个答案:

答案 0 :(得分:6)

waypoint方法不使用与父jQuery对象相同的上下文运行。如果您需要此行为,可以使用each来迭代.dipper元素:

$('.dipper').each(function() {
    var $this = $(this);
    $this.waypoint(function() {
        $this.addClass('test');
    }, { offset: '100%' });
});

答案 1 :(得分:3)

根据航点提供的文档,您将获得元素ID

  this.element.id

所以你的功能看起来像 -

    $('.dipper').waypoint(function() {
        $('#' + this.element.id).addClass('test');
    }, { offset: '100%' });

摘自http://imakewebthings.com/waypoints/guides/jquery-zepto/

注意:只有额外的工作才能将ID添加到相应的元素中。