#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);
});