@leha_trushin

Почему в metisMenu не работает обработчик shown/hidden?

Здравствуйте!

Есть меню на сайте меню jquery metisMenu. В меню надо рисовать всякие уведомлялки (например, о непрочитанных сообщениях). Вот пример. Идея такая, что если внутри схлопнутого меню есть только одно уведомление, то надо копировать его на само схлопнутое меню. Если же их много, то выводить некий дефолтный текст. Теперь основная проблема и суть вопроса. На фиддле нормально обрабатываются события 'shown.metisMenu' и 'hidden.metisMenu' (окончание процесс раскрытия/схлопывания меню) и запускается функция перерисовки уведомлялок для схлопнутых меню. Вешать эту функцию необходимо именно на эти события, а не просто на клики по меню (пробовал так в начале), потому что функция определяет схопнутость/развернутость меню по наличию класса 'in' для элемента
  • списка меню. Тогда начинаются проблемы с тем, что само metisMenu.min.js, например, еще не отработало до конца и не обновило все параметры, и функция работает со старыми их значениями. То есть обработчик клика работает до обработчика клика в самом metisMenu. Да и в принципе на том же фиддле все работает именно так, как запланировано. А на самом сайте (к сожалению, ссылку дать не могу, ибо он в локальной сети используется) эти же обработчики не срабатывают. Конечно понимаю, что тяжело, не видя весь код сайта, гадать, что же там ломается, но может есть у кого какие идеи? Уже закомментил все строчки кода, какие нашел, где так или иначе что-то делается с меню - не помогает. Пробовал и preventDefault: false в конструктор метис меню передавать - тоже не помогает. Может есть у кого какие идеи, что может мешать и ломать обработчик?
    P.S. В примере максимально попытался воссоздать часть кода, которая работает на сайте и отвечает за этот функционал.

    Заранее спасибо!
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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