Andrey_Tech
@Andrey_Tech

Не работает slideToggle и toggleClass в меню?

Добрый день! Ну могу понять в чем проблема, поскольку первый раз столкнулся с таким, делаю много уровневое меню и использую slideToggle что бы при нажатии меню плавно выезжало и обратно. Но при нажатии оно просто скачет, ничего не происходит, а если использовать slideDown или slideUp то отрабатывает на отлично, такая самая ерунда и с toggleClass
Сам код:

<div class="header__menu-modile">
        <a href="javascript:void(0)" class="close__mobile-menu">X</a>
        <div class="menu__mobile">
        <?php if ($categories) { ?>
            <div class="menu__mobile-body">
                <nav>
                    <ul>
                    <?php foreach ($categories as $category) { ?>
                        <?php if ($category['children']) { ?>
                        <li class="mobile__children-item">
                            <div class="item__menu-link">
                                <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
                                <span class="arrow__item item-first"></span>
                            </div>
                            <div class="item__submenu">
                                <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?>

                                    <?php foreach ($children as $child) { ?>
                                        <?php if($child['children']) { ?>
                                            <a href="<?php echo $child['href']; ?>" class=""><?php echo $child['name']; ?></a>
                                            <span class="arrow__item" id="item-2"></span>
                                        <?php } else { ?>
                                            <a href="<?php echo $child['href']; ?>" class=""><?php echo $child['name']; ?></a>
                                        <?php } ?>
                                    <?php } ?>

                                <?php } ?>
                            </div>
                        </li>
                        <?php } else { ?>
                            <li>
                                <a href="<?php echo $category['href']; ?>">
                                  <?php echo $category['name']; ?>
                                </a>
                            </li>
                            <?php } ?>
                            <?php } ?>
                            <?php if ($header_menu_toggle) { ?>
                            <?php foreach ($header_menu as $item) { ?>
                            <?php if ($item['title'] == '%АКЦИИ') { ?>
                            <li>
                                <a href="<?php echo $item['link'][$language_id]; ?>">
                                  <?php echo html_entity_decode  ($item['title'][$language_id], ENT_QUOTES, 'UTF-8'); ?>
                                </a>
                            </li>
                            <?php } else { ?>
                            <li class="menu__sale">
                                <a href="<?php echo $item['link'][$language_id]; ?>">
                                  <?php echo html_entity_decode($item['title'][$language_id], ENT_QUOTES, 'UTF-8'); ?>
                                </a>
                            </li>
                            <?php } ?>
                            <?php } ?>
                        <?php }?>
                    </ul>
                </nav>
            </div>
        <?php } ?>   
        </div>
    </div>


js:
$('.button__mobile-menu').on('click', function() {
    $('.header__menu-modile').addClass('show__menu');
});

$('.close__mobile-menu').on('click', function() {
  $('.header__menu-modile').removeClass('show__menu');
});
    
$('.mobile__children-item').on('click', function() {
    $(this).toggleClass('arrow__rotate');
    $('.mobile__children-item').click(function(){
        $('.item__submenu', this).stop().slideToggle('300');
    });
});
  • Вопрос задан
  • 196 просмотров
Решения вопроса 1
fallus
@fallus
Не понятно, зачем там вложенное событие на клик.

$('.mobile__children-item').on('click', function() {
    $(this).toggleClass('arrow__rotate');
    $('.item__submenu', this).stop().slideToggle('300');
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы