Не удается привязать функцию к mmenu API

#jquery #bind #mmenu

#jquery #привязать #mmenu

Вопрос:

Когда я пытаюсь привязать функции к существующим событиям из mmenu plugin API, я всегда сталкиваюсь со следующей ошибкой в инструменте разработчика при привязке функции:

Неперехваченная ошибка типа: API.bind не является функцией

В моем решении я использую

jQuery mmenu версии 4.2.0 и jquery-1.12.4

Ниже приведен мой соответствующий код на главной странице.

 $(document).ready(function () {
    var $menu = $("#mm-menu");
    $menu.mmenu({
        // options
    }, {
        // configuration
        offCanvas: {
            pageSelector: "#wrapper"
        }
    });
    var $icon = $("#hamburger-icon");
    var API = $menu.data("mmenu");

    $icon.on("click", function () {
        API.open();
    });
    API.bind('closed', function () {
        setTimeout(function () {
            $icon.removeClass("is-active");
        }, 100);
    });
  

Комментарии:

1. Решил это сам. Я был не очень осторожен, когда устанавливал пакет, который не является последней версией mmenu на github.

Ответ №1:

Используйте open:finish и close:finish вместо открытых и закрытых. Вы можете просмотреть все доступные записи событий API.getInstance() в объекте cbck. Вот код:

 API.bind( "open:finish", function() {
  setTimeout(function() {
    $icon.addClass( "is-active" );
  }, 50);
});
API.bind( "close:finish", function() {
  setTimeout(function() {
    $icon.removeClass( "is-active" );
  }, 50);
});