【问题标题】:Binding jquery event scroll with "on" [duplicate]用“on”绑定jquery事件滚动[重复]
【发布时间】:2015-12-17 23:36:53
【问题描述】:

我有一个问题,为什么会这样

$(selector).scroll(function(e) {
    console.log("Scrolling");
});

这不是

$(document).on("scroll", selector, function(e) {
    console.log("Scrolling");
});

这是选择器

var selector = "#schedule td > div.k-scheduler-content, #schedule td > div.k-scheduler-header";

“on”的滚动事件不起作用...我不知道为什么... 检查这个 plunker http://plnkr.co/edit/CjfoIPTCqScS1znAwmIs?p=preview

更新

也许我找到了一个可行的解决方案:

document.addEventListener(
  'scroll',
  function(event){
    var $elm = $(event.target);
    if( $elm.is(selector) ) { // or any other filtering condition
      // do some stuff
      console.log('scrolling');
    } else {
      console.log("selector different");
    }
  },
  true // Capture event
);

【问题讨论】:

  • 我认为您不需要选择器两次,请将其从 on 调用中的参数中删除
  • 检查 plunker,它不起作用
  • 在您的 Plunker 链接中,我注意到您在 DOM 之前调用了 js 代码,所以这就是它不起作用的原因,要么使用 ready 方法,要么将脚本移动到 DOM 中为我工作
  • <script src="script.js"></script> 移到刚刚结束的`

标签: javascript jquery


【解决方案1】:

尝试像下面这样使用它:

$("#test").on("scroll", function() {
    console.log("Scrolling");
});

希望这会有所帮助。

【讨论】:

  • 检查 plunker,您提供的参数也不起作用...
  • @Davide 请检查我的更新。
  • 不适用于动态 div D:
  • 为什么?!!我认为.on 应该处理新鲜的 DOM。
猜你喜欢
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 2012-05-24
  • 2013-10-22
  • 2018-10-11
相关资源
最近更新 更多