-->

jQuery add and remove $(window).scroll(function()?

2020-05-29 15:59发布

问题:

How can I remove and then add the $(window).scroll? I need to store a variable and reuse it after some event.

// here i store my var
$(window).scroll(function(){
    myScroll = $(window).scrollTop()  
});

$("#itemUnbind").click(function(){
    // here i need to remove the listener        
});

$("#itemBind").click(function(){
    // here i need to add listener again     
});

Thank you.

回答1:

You need to store the function in a variable and then use off to remove it:

var scrollHandler = function(){
    myScroll = $(window).scrollTop();
}

$("#itemBind").click(function(){
    $(window).scroll(scrollHandler);
}).click(); // .click() will execute this handler immediately

$("#itemUnbind").click(function(){
    $(window).off("scroll", scrollHandler);
});