jQuery путевые точки - Могу ли я использовать путевые точки дважды на одной странице? (Похоже, другие наборы путевых точек вызывают другие)

Я не уверен, что делаю что-то не так, но у меня есть несколько разделов, некоторые с подразделами.

  <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-top против section-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 вызывается в первом наборе путевых точек, но он постоянно увеличивается при прокрутке поднабора путевых точек.

Это как это должно функционировать, я делаю что-то не так? (Разве я не должен регистрировать путевые точки дважды?)

1 ответ

ХОРОШО. С помощью создателя путевых точек jQuery Калеб отметил, что причина этого заключается в том, что jQuery создает пузыри пользовательских событий.

Решение было поставить e.stopPropagation() во второй точке инициализации.

Github выпуск 114

Другие вопросы по тегам