2010-06-23 6 views
1

Это в настоящее время работает, по большей части:JQuery следующий брат Ли не работает на последней позиции

$(".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. Все еще работает неправильно; он попадает в последний список и больше не будет идти дальше. Это не имеет никакого смысла.

ответ

3

Вам нужна небольшая корректировка, используя селектор в .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>) ... это просто случилось, чтобы работать на всех, кроме последнего раздела, ause они имеют то, что <ul> с <li> элементами внутри (изображения справа). В последнем разделе «about» нет ни одного <li> детей, и ранее первым из этих маленьких изображений справа было то, что он прокрутил, а не фактический раздел ... так что это не сработало в конце :)

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

+0

Красивые. Спасибо. Я не смешивал этих двух, я просто пытался найти множество возможностей для достижения того, что я пытался сделать. '.find()' был только последним, который я попытался. :) – steve

+0

@steve - Добро пожаловать! :) –

 Смежные вопросы

  • Нет связанных вопросов^_^