解绑后如何重新绑定jQuery窗口滚动?

时间:2015-04-16 08:41:19

标签: jquery scroll bind unbind

在使用bind()停止div复制本身后,我需要再次scroll() $(window)再次unbind() - (#mystat-1)。我试过了$(window).bind('scroll');,但它没有用。谢谢!

$(window).scroll(function() {
    if ($("#moreSection").visible(true)) {
        doActionAndStopScript();
    }
});

function doActionAndStopScript() {
    $('#myStat-1').circliful() // now it will fire once
    $(window).unbind('scroll');
}

2 个答案:

答案 0 :(得分:2)

对于这种情况,我建议您使用event.namespace。我还建议您使用$.fn.on()$.fn.off()

代码是不言自明的。

//Declare a event hanlder
function scrollHandler(){
    if ($("#moreSection").visible(true)){
        doActionAndStopScript();

        //Bind event
        $(window).on('scroll.test', scrollHandler);
    }
}

function doActionAndStopScript(){
    // now it will fire once
    $('#myStat-1').circliful();

    //Unbind it
    $(window).off('scroll.test');
}

//Bind event
$(window).on('scroll.test', scrollHandler);

答案 1 :(得分:1)

您可以在event功能中再次绑定doActionAndStopScript

function scrollHandler() {
       if ($("#moreSection").visible(true)){
            doActionAndStopScript();
       }
}

$(window).scroll(scrollHandler);

function doActionAndStopScript(){
     $('#myStat-1').circliful();
     $(window).unbind('scroll');
 }

现在,您可以使用$(window).bind('scroll', scrollHandler);

再次绑定事件