【问题标题】:$(window).on('scroll'); is not working after setting it off$(window).on('scroll');关闭后不工作
【发布时间】:2017-09-18 16:51:22
【问题描述】:

我在 if 里面做 JS 动画,我不想让它在它到达它的位置后重复,所以我使用 $(window).off('scroll'); 现在#container 之后的每个元素都不能使用滚动事件,我试图转动滚动但它不起作用$(window).on('scroll');. 任何的想法?

$(window).scroll(function() {
   var hT = $('#container').offset().top,
       hH = $('#container').outerHeight(),
       wH = $(window).height(),
       wS = $(this).scrollTop();
    console.log((hT-wH) , wS);
   if (wS > (hT+hH-wH)){
   // some code
   $(window).off('scroll');


   }

});

【问题讨论】:

  • 好吧,您是说关闭所有事件...因此,如果您只想执行某些事件,则只需要关闭实例即可。查看命名空间。

标签: javascript jquery scroll progress-bar


【解决方案1】:

您的off call取消绑定所有事件,而不仅仅是一个。您需要取消绑定该实例。它要么通过函数引用完成

var myScroll1 = function () {
  $(window).off("scroll", myScroll1)
}
$(window).on("scroll", myScroll1)

或命名空间

$(window).on("scroll.scroll1", function () {
  $(window).off("scroll.scroll1", myScroll1)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2023-04-06
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    相关资源
    最近更新 更多