Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unbind a specific function jQuery

What I'm trying to do is unbind a specific function, after it has run once. In the code below it's the window scroll.

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

Basicly, when the #div fades out, I want it to scrollTop(0). After scrolling top, I need this entire function to unbind.

Is there a way to give this function a specific name, and then call back that name? Because this code works, only it removes all scroll functions. (Wich ofcourse I don't want) I was thinking something like so:

 $(window).scroll(function(FUNCTION NAME HERE){
     if($(window).scrollTop() == viewportheight ){
          $("#landing_page").fadeOut(function() { $(window).scrollTop(0); $(window).unbind("FUNCTION NAME HERE");});
     }
 });
like image 475
Jefferson Avatar asked Feb 27 '13 08:02

Jefferson


1 Answers

Jefferson, something like...

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

now, unbind the scroll - I have it a unique identifier just in case you have other window scroll events, you don't want to mess with.

$(window).unbind('.myScroll');
like image 133
james emanon Avatar answered Oct 11 '22 00:10

james emanon