2013-02-27 22 views
5

Yapmaya çalıştığım şey, bir kez çalıştırıldıktan sonra belirli bir işlevi kaldırmaktır. Aşağıdaki kodda pencere kaydırmadır.Belirli bir işlevi kaldırın jQuery

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

Temel olarak #div kaybolduğunda, scrollTop (0) olmasını isterim. Üst kısımda ilerledikten sonra, tüm bu işlevlere ihtiyacım var.

Bu işleve belirli bir ad vermenin ve sonra bu adı geri aramanın bir yolu var mı? Bu kod çalıştığından, tüm kaydırma işlevlerini kaldırır. Ben şöyle bir şey düşünüyordum (Wich tabii ben istemiyorum):

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

cevap

23

Jefferson, böyle bir şey için herhangi bir özel olayı bağını kaldırmak için jquery.unbind işlevini kullanabilirsiniz .. .

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

şimdi, kaydırma unbind - ne sen, diğer pencere kaydırma etkinlik ihtimale benzersiz bir tanımlayıcı var, uğraşmak istemiyoruz.

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

Bu düzeltildi! Çok teşekkür ederim efendim. – Jefferson

+0

harika! Yardımcı olduğuma sevindim. –

+0

Bunun gibi bir işlevi açmak için erişilebilirlik var: jQuery.fn.scrollVal = function (jump, type) {...} '? Bunun gibi Becuase sth çalışmıyor: '$ ('# ReleaseVersion'), ('. ScrollVal'); – krypru

0

Eğer elemana

+0

scrollTop işlevini açmayı denedim, çalışmaz. Fonksiyonu yakmaya devam ediyor. – Jefferson