0

我不确定我是否做错了什么,但我有很多部分,其中一些带有子部分。

  <section id="section-one" class="section-top"></section>
  <section id="section-two" class="section-top"></section>
  <section id="section-three" class="section-top">
    <article id="sub-section-one" class="section-sub"></article>
    <article id="sub-section-two" class="section-sub"></article>
    <article id="sub-section-three" class="section-sub"></article>
    <article id="sub-section-four" class="section-sub"></article>
  </section>

所以我设置了两个航点调用来执行不同的任务section-topsection-sub

$(document).ready(function(){
  $('.section-top').waypoint(function(e,d){
    // Do something
  });

  $('.section-sub').waypoint(function(e,d){
    // Do something else
  });
});

但是,当我滚动浏览section-sub航点时,它仍然会触发section-top,更糟糕的是,它似乎是section-top用自己的航点触发的,所以没有办法告诉它不要对section-sub触发器采取行动。

如果您查看这个 jsbin,您可以看到trigger-count在第一组航点中调用了 ,但是当滚动通过子组航点时它会不断上升。

这是它应该如何运作,我做错了什么吗?(我不应该注册两次航点吗?)

4

1 回答 1

0

好的。在 jQuery waypoints 创建者的帮助下,Caleb 提到发生这种情况的原因是由于自定义事件的 jQuery 冒泡。

解决方案是进行e.stopPropagation()第二个航路点初始化。

Github 问题 114

于 2012-12-07T16:05:29.280 回答