JQuery следующий брат или сестра li не работает над последним пунктом - PullRequest
1 голос
/ 24 июня 2010

В настоящее время это работает, по большей части:

$(".nextproject").click(function() {
    $(window).scrollTo(
        $(this)
        .parents()
        .nextAll()
        .find("li:visible:first"),
        1000,
        {easing:'easeOutExpo', axis:'x', offset:-75 }
    );
});

Вы можете увидеть демо здесь: http://www.studioimbrue.com/index2.php

Это прекрасно работает через все это.Когда вы нажимаете фильтры внизу, он все еще функционирует и пропускает скрытые элементы div.Как только вы доберетесь до конца, прямо перед #about div, он не будет продолжать работать, и я понятия не имею, почему это не будет.

Редактировать: я изменил элементы div на liВсе еще не работает должным образом;он попадает в последний список и не пойдет дальше.Это не имеет никакого смысла вообще.

1 Ответ

3 голосов
/ 24 июня 2010

Вам нужно немного подкорректировать, используя селектор в вызове .nextAll(), например:

$(".nextproject").click(function() {
    $(window).scrollTo(
        $(this)
        .parents()
        .nextAll("li:visible:first"),
        1000,
        {easing:'easeOutExpo', axis:'x', offset:-75 }
    );
});

Так как ваш HTML выглядит следующим образом:

<li class="container photography_cat" style="">
  <!-- Other stuff.... -->
  <div class="nextproject"></div>
</li>

Вы хотите найти следующий <li>, который является родным братом .nextproject родителя (не дочерний следующего элемента, который <li>) ... это просто случилось сработать на всех, кроме последнего раздела, потому что они имеют <ul> с <li> элементами внутри (изображения справа).В последнем разделе «о» нет <li> дочерних элементов, и ранее первым из этих маленьких изображений справа было то, к чему оно прокручивалось, а не фактический раздел… так что в конце он не работал:)

Теперь, когда я думаю об этом, возможно ли, что вы путаете .find() и .filter()?.filter() также будет работать ... но поскольку .nextAll() использует селектор, в этом случае нет необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...