Как узнать, когда next () достигнет конца, а затем перейти к первому элементу

В моем случае мне пришлось выбрать «src / main / java» и выбрать меню «Запуск от имени» Точно так же, как это , чтобы отобразилось «Spring Boot App» как здесь .

30
задан isherwood 18 September 2019 в 16:23
поделиться

2 ответа

Определите .next() заранее, проверив его свойство length.

$('.nextSingle').click( function() {
       // Cache the ancestor
    var $ancestor = $(this).parent().parent().parent();
       // Get the next .newsSingle
    var $next = $ancestor.next('.newsSingle');
       // If there wasn't a next one, go back to the first.
    if( $next.length == 0 ) {
        $next = $ancestor.prevAll('.newsSingle').last();;
    }

    //Get the height of the next element
    var thisHeight = $next.attr('rel');

    //Hide the current element
    $ancestor.animate({
            paddingBottom:'0px',
            top:'48px',
            height: '491px'
        }, 300);

        //Get the next element and slide it in      
    $next.animate({
            top:'539px',
            height: thisHeight,
            paddingBottom:'100px'
        }, 300);
});

Кстати, вы можете заменить .parent().parent().parent() на .closest('.newsSingle') (если ваша разметка это позволяет).

РЕДАКТИРОВАТЬ: Я исправил thisHeight, чтобы использовать элемент $next, на который мы ссылались.

31
ответ дан 27 November 2019 в 23:47
поделиться

согласно документации jquery, пустой объект jquery вернет .length 0.

Итак, вам нужно проверить возврат при вызове .next, а затем позвонить: сначала

http://api.jquery.com/next/

6
ответ дан 27 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: