2013-02-27 21 views
5

Ich versuche eine bestimmte Funktion zu lösen, nachdem sie einmal ausgeführt wurde. Im folgenden Code ist das Fenster Scroll.Eine spezifische Funktion entfernen jQuery

$(window).scroll(function(){ 
    if($(window).scrollTop() == viewportheight){ 
      $("#landing_page").fadeOut(function() { $(window).scrollTop(0); $(window).unbind("scroll");}); 
    } 
}); 

Grundsätzlich, wenn die # div ausblendet, möchte ich es ScrollTop (0). Nachdem ich oben gescrollt habe, brauche ich diese ganze Funktion um zu lösen.

Gibt es eine Möglichkeit, dieser Funktion einen bestimmten Namen zu geben und dann diesen Namen zurückzurufen? Da dieser Code funktioniert, werden nur alle Bildlauffunktionen entfernt. (Wich natürlich will ich nicht) Ich dachte so etwas wie so:

$(window).scroll(function(FUNCTION NAME HERE){ 
    if($(window).scrollTop() == viewportheight){ 
      $("#landing_page").fadeOut(function() { $(window).scrollTop(0); $(window).unbind("FUNCTION NAME HERE");}); 
    } 
}); 

Antwort

23

Jefferson, so etwas wie .. .

$(window).bind("scroll.myScroll", function(){ 
    // stuff 
    }) 

jetzt, entbinden die Scroll - ich habe es eine eindeutige Kennung haben nur, wenn Sie andere Fenster blättern Ereignisse haben, Sie wollen nicht zu verwirren mit.

$(window).unbind('.myScroll'); 
+0

Das hat es behoben! Vielen Dank, mein Herr. – Jefferson

+0

genial! Froh, dass ich helfen konnte. –

+0

Gibt es eine Möglichkeit, eine Funktion zu lösen, die wie folgt erstellt wurde: 'jQuery.fn.scrollVal = function (jump, type) {...}'? Weil so etwas nicht funktioniert: '$ ('# ReleaseVersion'). Unbind ('. ScrollVal');' – krypru

0

Sie jquery.unbind Funktion können für das Element ein bestimmtes Ereignis entbinden

+0

Ich habe versucht, die ScrollTop zu lösen, was nicht funktioniert. Es feuert die Funktion weiter ab. – Jefferson