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。在绝望中,我也尝试了,但我认为它不起作用,因为内容是在页面加载之后加载的。