繁体   English   中英

使用动态加载的内容触发点击事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM