jQuery hinzufügen und entfernen $(window).scroll(function()?

Lesezeit: 1 Minute

Benutzer-Avatar
Dee

Wie kann ich die entfernen und dann hinzufügen $(window).scroll? Ich muss eine Variable speichern und nach einem Ereignis wiederverwenden.

// 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     
});

Vielen Dank.

Benutzer-Avatar
Andi E

Sie müssen die Funktion in einer Variablen speichern und dann verwenden off es zu entfernen:

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);
});

  • @Dee – wenn dies für Sie funktioniert, markieren Sie es bitte als Antwort, indem Sie auf das “Häkchen” -Symbol klicken.

    – Fenton

    3. Februar 2011 um 14:00 Uhr

  • Ich denke, das sollte sein: $(“#itemUnbind”).click(function(){ $(window).unbind(“scroll”, scrollHandler); });

    – JackAllan

    8. März 2013 um 15:28 Uhr


  • @JackAllan: Man könnte meinen, jemand anderes hätte das in den letzten 2 Jahren bemerkt! Während die alte Lösung für die meisten Leute funktioniert hätte, hätte sie alle Handler für das Ereignis entbunden.

    – Andi E

    8. März 2013 um 15:50 Uhr

  • Sie sollten Ihre Antwort bearbeiten, um dies widerzuspiegeln.

    – gdbj

    24. Januar 2016 um 17:34 Uhr

  • @gdbj: Das habe ich vor fast 3 Jahren. Der Unterschied ist, dass ich verwendet habe off Anstatt von unbind (Letzteres ist veraltet).

    – Andi E

    25. Januar 2016 um 9:38 Uhr

1227430cookie-checkjQuery hinzufügen und entfernen $(window).scroll(function()?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy