jQuery Unbind从if语句冒出来

时间:2015-04-13 05:38:26

标签: jquery scroll svg-animate jquery-events

我正在编写代码,当svg元素滚动到页面上时会出现svg元素。我只希望代码在页面上的该位置滚动到时运行一次。我的计划是在页面上的该位置滚动到之后取消绑定滚动事件(在if语句内)。由于某种原因,在页面的该部分滚动到(400> = pos)之前从if语句内调用unbind函数。我没有创建我的SVG对象,因为if语句中的代码不应该被执行。我怀疑unbind函数是从if语句冒出来的。

function createSVG() {
    var pos = $('#graphics').offset().top - $(this).scrollTop();
    if(400 >= pos) {
        var animation2 = new DrawFillSVG({
            elementId: 'obj-1',
            drawTime: '2s'
        });
        var animation2 = new DrawFillSVG({
            elementId: 'obj-2',
            drawTime: '2s'
        }); 
        var animation2 = new DrawFillSVG({
            elementId: 'obj-3',
            drawTime: '2s'
        }); 
        $(this).unbind("scroll");                       
    }       
}
$(window).scroll(createSVG());

1 个答案:

答案 0 :(得分:1)

您需要将createSVG的函数引用传递给scroll事件。

使用

$(window).scroll(createSVG); //Notice removed ()

根据您当前的代码,您将createSVG函数的返回值传递给scroll事件。