Как активировать первого ребенка в цикле php - PullRequest
1 голос
/ 27 мая 2020

я пытаюсь L oop мой аккордеон с помощью al oop, но теперь мое активное состояние находится на всех li.

    $(function() {
    // (Optional) Active an item if it has the class "is-active"    

    $(".accordion > .accordion-item.is-active").children(".accordion-panel").slideDown();

    $(".accordion > .accordion-item").click(function() {
        // Cancel the siblings
        $(this).siblings(".accordion-item").removeClass("is-active").children(".accordion-panel").slideUp();
        // Toggle the item
        $(this).toggleClass("is-active").children(".accordion-panel").slideToggle("ease-out");
    });
});

My Php

<?php if( $the_query->have_posts() ): ?>
    <ul class="accordion">
        <?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>

        <li class="accordion-item is-active">...

1 Ответ

2 голосов
/ 27 мая 2020

Вам нужен счетчик или логическое значение для первой итерации. Не меняя большую часть вашего кода, вот возможное решение:

<?php if( $the_query->have_posts() ): ?>
    <ul class="accordion">
        <?php $isFirst = true; ?>
        <?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>

        <li class="accordion-item <?= $isFirst ? 'is-active' : '' ?>"></li>
        ...
        <?php $isFirst = false; ?>
        <?php endwhile; ?>
    </ul>    

Вы также можете использовать a для l oop и проверить первый индекс.

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