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

时间:2015-12-09 14:45:37

标签: javascript jquery

我的内容随着ajax而改变,我希望在200px的滚动后触发点击一个元素。

$(window).scroll(function() {
  if($(window).scrollTop() > 200){
    $(".element")[0].click();
  }
}

但这不适用于更改内容。在第一次加载时它起作用。但是,一旦ajax做了它的事情,事件就不会再被解雇了。有任何想法吗?我知道on事件,但无法弄清楚如何在这里使用它。

更新

链接的问题对我没有帮助:

$(staticAncestors).on(eventName, dynamicChild, function() {});

这适用于点击或其他活动。但我不想附加点击事件,我想触发点击事件。我怎么能这样做?更改是在我无法控制的ajax调用中,因此我无法添加回调。

由于

2 个答案:

答案 0 :(得分:0)

当您尝试使用第一次加载时不存在的项目/对象时,JavaScript会有点混乱。

jQuery / JS语言简单来说,实际上只能应用于页面加载中的对象。

最简单的方法是将函数委托给总是在pageload上的HTML元素。大多数人通常使用<body>

例如:

$(window).scroll(function() {
  if($(window).scrollTop() > 200){
    $( "body" ).delegate( $(".element")[0], "click", function() {
      // Your Code Here
    });
  }
}

答案 1 :(得分:0)

this answer,您使用find()方法查看静态祖先元素的后代元素:

$('#someStaticAncestorElement').find('.element')[0].click();