Выпадающее меню на мобильной версии стандартного шаблона

В данной категории, пользователи задают вопросы относительно установки и эксплуатации MOGUTA.CMS
Аватара пользователя
DSK
lvl 3
Сообщения: 17
Зарегистрирован: 02 фев 2020, 05:02

Выпадающее меню на мобильной версии стандартного шаблона

Сообщение DSK » 23 май 2020, 04:48

Здравствуйте!
Прошу помощи у пользователей данного форума, вдруг кто сталкивался уже с подобной проблемой, или просто знает, как решить эту проблему.

Есть стандартный шаблон Могуты. Старая его версия (пользуюсь старой по той причине, что много было произведено личных настроек + в новой много проблем, которые почему-то так и не были исправлены).
Вопрос про выпадающее меню каталога. С компьютера всё работает так, как должно работать. А вот на телефоне есть проблемы с выпадающими подменю. Когда нажимаешь на стрелку, то вместо того, чтобы раскрыть и показать список подменю происходит переход на страницу этой категории.

Речь про вот эти стрелки.
Изображение

Скажите, пожалуйста, как сделать так, чтобы эти стрелки открывали список подменю, а не сразу открывали страницу.
Был бы крайней признателен, если подсказали, как убрать эту кликабельность стрелок.
Нужно в sсript.js или в layout_leftmenu.php что-менять или может и вовсе не здесь?

Заранее премного благодарен за ответы!
Аватара пользователя
ElektroTop
lvl 3
Сообщения: 22
Зарегистрирован: 01 май 2020, 21:01

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение ElektroTop » 23 май 2020, 04:58

Доброго времени суток
возьмите за образец файл /mg-templates/moguta-standard/components/menu/categories/categories.js
он отвечает за раскрытие меню в новом стандартном шаблоне
файл самого меню
/mg-templates/moguta-standard/components/menu/categories/categories.php

если вы не меняли настройки самого меню и его стили

то просто возьмите из нового шаблона эти 2 файла
и замените свои.

это самый быстрый вариант решения вопроса.
( не забудьте сохранить старые файлы )
Аватара пользователя
ElektroTop
lvl 3
Сообщения: 22
Зарегистрирован: 01 май 2020, 21:01

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение ElektroTop » 23 май 2020, 05:03

у меня нет сейчас старой версии шаблона, но насколько я помню
в файле sсript.js должен быть код отвечающий за раскрытие меню , при замене файлов удалите его.
Аватара пользователя
DSK
lvl 3
Сообщения: 17
Зарегистрирован: 02 фев 2020, 05:02

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение DSK » 23 май 2020, 05:26

Благодарю за быстрый ответ!
Звучит очень логично. Я точно также решил сделать ещё днём, но вышло только хуже. Единственное, может быть я куда-то не туда копирую?
Содержимое файла categories.js из нового шаблона я скопировал в script.js, а содержимое categories.php в layout_leftmenu.php.

Получилось вот что
Изображение
Аватара пользователя
DSK
lvl 3
Сообщения: 17
Зарегистрирован: 02 фев 2020, 05:02

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение DSK » 23 май 2020, 05:30

Вот кусок script.js из старой версии шаблона

Код: Выделить всё

$(document).ready(function () {
  
      // add active link
    // ------------------------------------------------------------
    $('nav a').each(function () {
        var location = window.location.href;
        var link = this.href;
        if (location == link) {
            $(this).addClass('active');
        }
    });

    // c-nav (mobile menu)
    // ------------------------------------------------------------

    $("#c-nav__catalog .c-nav__menu").mouseover(function () {
        MenuOpenCloseTimer(
            function () {
                $('.c-catalog .c-button, .l-main, .c-catalog__dropdown--1').addClass('active');
                $('#c-nav__catalog').addClass('c-nav--open');
            }
        );
    });

    $(".l-header__block .c-catalog").mouseover(function (e) {
        if (e.target === this) {
            MenuOpenCloseTimer(
                function () {
                    $('.c-catalog .c-button, .l-main, .c-catalog__dropdown--1').addClass('active');
                    $('#c-nav__catalog').addClass('c-nav--open');
                }
            );
        }
    });


    $("#c-nav__catalog .c-nav__menu>.c-nav__dropdown").mouseout(function () {
        MenuOpenCloseTimer(
            function () {
                $('.c-catalog .c-button, .l-main, .c-catalog__dropdown--1').removeClass('active');
                $('#c-nav__catalog').removeClass('c-nav--open');
            }
        );
    });

    $(".l-header__block .c-catalog, #c-nav__catalog .c-nav__menu>.c-nav__dropdown li").hover(function () {
        MenuOpenCloseTimer(
            function () {
                $('.c-catalog .c-button, .l-main, .c-catalog__dropdown--1').addClass('active');
                $('#c-nav__catalog').addClass('c-nav--open');
            }
        );
    }, function () {
        MenuOpenCloseTimer(
            function () {
                $('.c-catalog .c-button, .l-main, .c-catalog__dropdown--1').removeClass('active');
                $('#c-nav__catalog').removeClass('c-nav--open');
            }
        );
    });

    $(".l-header__top .l-header__block .c-button, .l-header__top .l-header__block #c-nav__menu .c-nav__menu").hover(function () {
        MenuOpenCloseTimer(
            function () {
                $('.l-header__top .l-header__block #c-nav__menu').addClass('c-nav--open');
            }
        );
    }, function () {
        MenuOpenCloseTimer(
            function () {
                $('.l-header__top .l-header__block #c-nav__menu').removeClass('c-nav--open');
            }
        );
    });

    function MenuOpenCloseTimer(funct) {
        if (typeof this.delayTimer == "number") {
            clearTimeout(this.delayTimer);
            this.delayTimer = '';
        }
        this.delayTimer = setTimeout(function () {
            funct();
        }, 200);
    }

    $('body').on('click', 'a[href^="#c-nav"]', function (a) {
        a.preventDefault();
        var b = $(this).attr('href');
        $(b).addClass('c-nav--open');

    }), $('body').on('click', '.c-nav', function () {
        $('.c-nav').removeClass('c-nav--open');

    }), $('body').on('click', '.c-nav__menu', function (a) {
        a.stopPropagation()
    });


    $('body').on('click', 'a[href^="#c-nav__menu"]', function (a) {
        a.preventDefault();
        var b = $(this).attr('href');
        $(b).addClass('c-nav--open');
        $('body').addClass('fixed__body')

    }), $('body').on('click', '.c-nav', function () {
        $('.c-nav').removeClass('c-nav--open');
        $('body').removeClass('fixed__body')

    }), $('body').on('click', '.c-nav__menu', function (a) {
        a.stopPropagation()
    });


    $(".c-menu").click(function () {
        $('.c-nav--open').toggle().removeAttr('style');
    });
    $(document).on('click', function (e) {
        if (!$(e.target).closest(".c-nav--open").length) {
            $('c-nav.c-nav--open').hide();
        }

        e.stopPropagation();
    });

    $('body').on('click', '.c-nav__level--1', function () {
        var a = $(this).siblings();

        if ($(window).width() < 1025) {
            a.find('.c-nav__dropdown--2').slideUp('fast');
            $(this).find('.c-nav__dropdown--2').slideToggle('fast');
        }
        a.find('.c-nav__icon').removeClass('rotate');
        $(this).find('.c-nav__icon').toggleClass('rotate');
    });
  
    // c-catalog
    // ------------------------------------------------------------
  $('.c-catalog .c-button').on('click', function () {
        if ($(window).width() < 1025) {
            $('.c-catalog .c-button, .l-main, .c-catalog__dropdown--1').toggleClass('active');
        }

    }), $('body').on('click', function () {
        if ($(window).width() < 1025) {
            $('.c-catalog .c-button, .l-main, .c-catalog__dropdown--1').removeClass('active');
        }
    
    }), $('body').on('click', '.c-catalog', function (a) {
        a.stopPropagation()
    });

    $('.c-catalog__level').hoverIntent({
        sensitivity: 3,
        interval: 100,
        timeout: 200,
        over: function () {
            $(this).find('> .c-catalog__dropdown').addClass('active');
        },
        out: function () {
            $(this).find('.c-catalog__dropdown').removeClass('active');
        }
    });
Аватара пользователя
ElektroTop
lvl 3
Сообщения: 22
Зарегистрирован: 01 май 2020, 21:01

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение ElektroTop » 23 май 2020, 06:27

Если бы у меня был старый шаблон, мы бы вместе решили вашу проблему.
Но по куску кода к сожалению я не смогу помочь, мне нужно видеть картину в целом.
:P
скиньте в лс ссылку на сайт
Аватара пользователя
DSK
lvl 3
Сообщения: 17
Зарегистрирован: 02 фев 2020, 05:02

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение DSK » 23 май 2020, 06:33

Просто вы написали, что из скрипт.js нужно что-то удалить. Я подумал, что так понятнее будет, что именно.

У вас вроде бы личка закрыта.
Сайт https://to-school.ru.
Тут я вернул в исходное состояние оба файла, чтобы хотя бы с компьютера сейчас открывалось меню.
Аватара пользователя
ElektroTop
lvl 3
Сообщения: 22
Зарегистрирован: 01 май 2020, 21:01

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение ElektroTop » 23 май 2020, 07:28

a.stopPropagation(),

при нажатии на иконку не отрабатывает запрет на переход по ссылке.

Для более подробного разбора нужен специалист в области java, кем я не являюсь((
Аватара пользователя
ElektroTop
lvl 3
Сообщения: 22
Зарегистрирован: 01 май 2020, 21:01

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение ElektroTop » 23 май 2020, 07:41

вот пример:
https://ru.stackoverflow.com/questions/ ... 0%B5%D1%91

можно попробовать сделать по аналогии
Аватара пользователя
DSK
lvl 3
Сообщения: 17
Зарегистрирован: 02 фев 2020, 05:02

Re: Выпадающее меню на мобильной версии стандартного шаблона

Сообщение DSK » 23 май 2020, 15:14

ElektroTop писал(а):
23 май 2020, 07:28
a.stopPropagation(),

при нажатии на иконку не отрабатывает запрет на переход по ссылке.

Для более подробного разбора нужен специалист в области java, кем я не являюсь((
Так в новой версии шаблона точно также указано "a.stopPropagation()", но подменю открываются в мобильной версии.

Может кто разбирается и готов за умеренную плату помочь?
Написал бы в стол заказов на доработку, но хотел за эти выходные решить проблему. В выходные служба поддержки не промодерирует эту заявку
Ответить