【问题标题】:Unbind a specific function jQuery取消绑定特定函数 jQuery
【发布时间】:2013-02-27 08:02:06
【问题描述】:

我想要做的是在它运行一次之后取消绑定一个特定的函数。在下面的代码中,它是窗口滚动。

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

基本上,当#div 淡出时,我希望它滚动到顶部(0)。滚动顶部后,我需要解除绑定整个函数。

有没有办法给这个函数一个特定的名字,然后回调那个名字?因为此代码有效,所以只有它删除了所有滚动功能。 (当然我不想要)我在想这样的事情:

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

【问题讨论】:

    标签: jquery function scrolltop unbind


    【解决方案1】:

    杰斐逊,类似...

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

    现在,取消绑定滚动 - 我有一个唯一标识符,以防万一您有其他窗口滚动事件,您不想搞砸。

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

    【讨论】:

    • 解决了!非常感谢您,先生。
    • 太棒了!很高兴我能帮上忙。
    • 是否可以取消绑定这样创建的函数:jQuery.fn.scrollVal = function (jump, type) {...}?因为这样不行:$('#ReleaseVersion').unbind('.scrollVal');
    【解决方案2】:

    您可以使用 jquery.unbind 函数取消绑定元素的任何特定事件

    【讨论】:

    • 我试过解除scrollTop的绑定,还是不行。它不断触发函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多