Javascript Can';t在特定div上使用scroll触发jquery函数

Javascript Can';t在特定div上使用scroll触发jquery函数,javascript,jquery,html,scroll,Javascript,Jquery,Html,Scroll,简短版本:这很有效 $(document).on("click",".Container",function(){}) 这并不是: $(document).on("scroll",".Container",function(){}) 长版本: 很抱歉,发布代码片段是不可行的,因为它是一个类似于应用程序的复杂界面,但我将尽力解释这个问题: 移动响应网站,根据屏幕的实际情况加载不同的界面 由3个部分组成的最小界面——顶部导航、底部搜索和中间内容。 内容主要在使用期间加载,而不是在页面加载时加载

简短版本:这很有效

$(document).on("click",".Container",function(){})
这并不是:

$(document).on("scroll",".Container",function(){})
长版本: 很抱歉,发布代码片段是不可行的,因为它是一个类似于应用程序的复杂界面,但我将尽力解释这个问题:

  • 移动响应网站,根据屏幕的实际情况加载不同的界面
  • 由3个部分组成的最小界面——顶部导航、底部搜索和中间内容。
  • 内容主要在使用期间加载,而不是在页面加载时加载
  • 我需要在内容滚动时触发一个函数,包括上下滚动和动态滚动,而不仅仅是超过某个点
  • 我仍然可以滚动,只是它不会触发作为事件
  • 我已经尝试了所有我发现无效的东西,从我短暂的经验和我一直在阅读的内容来看,我认为这可能与滚动不会像单击一样冒泡有关,但我不知道我应该做什么或尝试这些信息
  • 虽然它似乎不会影响我的问题(删除它并不能解决问题),但我应该透露,我正在使用hammer.js模拟触摸事件,因为它可能会影响解决方案
提前谢谢你的帮助


除此之外,我将使用不起作用的建议进行编辑--

我认为这是因为滚动事件没有冒泡,并且您正在按照委托添加侦听器,您应该直接添加它:

$('.Container').on('scroll',function(){});
更多信息请访问:

在@A.Wolf和@M.Doye的帮助下,我发现了一些有效的方法。虽然这无助于理解问题所在,但至少它在工作

document.addEventListener('scroll',function(event){
    if(event.target.className==='Container'){
        insert magic spell here
    }
},true);

希望这个链接能帮助你:如果你不需要支持IE8Look@A.Wolff在这里的答案@PradeepSekar,你也可以捕获scroll事件。我在另一个页面上使用过类似的东西,但问题是它适用于窗口滚动,而不是在特定的div中滚动,我可能可以让它工作,但我正在做的是有2个滚动div,这会把事情搞砸,所以如果有任何解决方案,我需要一个通用的解决方案。@a.Wolff Coment似乎已经完成了这项工作。现在它触发了。同样感谢M.Doye。在绝望中,我也尝试了,但我认为它不起作用,因为内容是在页面加载之后加载的。