我已经尝试过在SO和网络的其他部分找到的所有其他“解决方案”,但仍无法使其发挥作用。
我有一个动态创建的div position: fixed; overflow-y: auto
,div是在用户点击某个链接时创建的。这是我用来尝试执行某些代码的函数,只要滚动动态创建的div。
$("#scroller").on("scroll",function() {
console.log("scrolled..");
});
#scroller
是动态创建的div
。
问题是,当加载页面时,此功能不起作用,但当该功能粘贴到Google Chrome中的开发者控制台时,可以正常工作。< / p>
我尝试过使用常规scroll()
函数到将on()
函数更改为以下内容的所有内容:
$("#scroller-container").on("scroll","#scroller",function() {
console.log("scrolled..");
});
然而它仍然不起作用。
我怎样才能让它发挥作用?
编辑:所有代码都在jQuery(window).load(function ()...
函数
答案 0 :(得分:2)
在DOM上附加元素后尝试绑定scroll事件,如下所示:
$("body").on("DIVscroll", "#scroller", function(){
console.log("Scrolled...");
});
$("#btn").on("click", function(){
$("body").append('<div id="scroller">I have a dynamically created div with position: fixed; overflow-y: auto, the div is created when a user clicks a certain link. This is the function Im using to try and execute some code whenever that dynamically created div is scrolled.</div>');
ScrollEventListener($("#scroller"));
});
function ScrollEventListener(el){
el.on("scroll", function(){
el.trigger("DIVscroll");
});
}
body{
font-size: 17px;
}
#scroller{
height: 100px;
width: 300px;
border: 1px solid;
overflow-y: auto;
position: fixed;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="btn" value="Append div"/>