[英]Trigger a click event with dynamically loaded content
我的内容随着ajax的变化而变化,我希望在滚动200px后触发对元素的点击。
$(window).scroll(function() {
if($(window).scrollTop() > 200){
$(".element")[0].click();
}
}
但这不适用于更改内容。 首次加载时有效。 但是,一旦ajax生效,该事件就不再触发。 有任何想法吗? 我知道on事件,但无法在这里弄清楚如何使用它。
更新资料
链接的问题对我没有帮助:
$(staticAncestors).on(eventName, dynamicChild, function() {});
这适用于点击或其他事件。 但我不想附加点击事件,我想触发点击事件。 我该怎么办? 更改发生在我无法控制的ajax调用中,因此我无法添加回调。
谢谢
当您尝试使用第一次加载时不存在的项目/对象时,JavaScript会有些混乱。
简单来说,jQuery / JS语言只能真正应用于页面加载时的对象。
解决此问题的最简单方法是将函数委派给页面加载中始终存在的HTML元素。 大多数人通常使用<body>
。
例如:
$(window).scroll(function() {
if($(window).scrollTop() > 200){
$( "body" ).delegate( $(".element")[0], "click", function() {
// Your Code Here
});
}
}
根据此答案 ,您可以使用find()
方法查看静态祖先元素的后代元素:
$('#someStaticAncestorElement').find('.element')[0].click();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.