현재 모바일 메뉴로 mmenu가 있습니다. 닫을 때 첫 번째 레벨로 메뉴를 재설정 할 수 있어야합니다. 현재 기본 기능으로 메뉴를 닫은 후 다시 열면 하위 수준으로 더 깊숙히 탐색하면서 중단 한 부분이 나옵니다.Jquery mmenu - 닫기시 주 메뉴로 재설정 메뉴
이 문제에 대한 도움을 크게 주시면 감사하겠습니다.
감사합니다.
현재 모바일 메뉴로 mmenu가 있습니다. 닫을 때 첫 번째 레벨로 메뉴를 재설정 할 수 있어야합니다. 현재 기본 기능으로 메뉴를 닫은 후 다시 열면 하위 수준으로 더 깊숙히 탐색하면서 중단 한 부분이 나옵니다.Jquery mmenu - 닫기시 주 메뉴로 재설정 메뉴
이 문제에 대한 도움을 크게 주시면 감사하겠습니다.
감사합니다.
열린 모든 패널을 닫으려면 "닫힌"콜백 이벤트를 사용할 수 있습니다.
이 작업을 수행하는 트릭은 수평 서브 메뉴 (기본 설정)를 사용할 때 - 첫 번째 패널 ("기본"레벨 메뉴)을 여는 것입니다.
$("#menu").mmenu();
$("#menu").on("closed", function() {
$("#menu .mm-panel").first().trigger("open.mm");
});
lib 자체를 해킹하려고 할 수 있습니다. 예를 들어
:
가. 이 코드 찾기 (ca. # 374) :
this.__transitionend(a.$page.first(), function() {
b. 바로 위의 코드 후, 당신은 이런 식으로 뭔가를 삽입 할 수 :
var jid = t.$menu.attr('id'); $('#' + jid + ' .mm-panels').fadeOut('fast', function(){ $(this).children().removeClass('mm-opened mm-subopened mm-hidden mm-current mm-highest'); $('#' + jid + ' .mm-panels :first-child').addClass('mm-opened mm-current'); }).fadeIn('fast');
설명 :는
원래 mm 코드 (한 당신이 찾고있는이) 왜 그것을 방법에 관계없이, 폐쇄, 또는되는 패널의 화재 닫히고 있습니다.
방금 붙여 넣은 코드로 mmenu 엔진에서 사용하는 클래스를 다시 배열하여 mmenu 상태를 변경합니다.
모든 전환이 원활하게 일어날 패널 (예를 들어, 당신이 iconbar 확장자를 사용하는 경우)의 볼 부분 페이드 아웃, 메인 iconbar이 페이드되는 메뉴 패널의 재 위치 후 수 있도록합니다. 이프레드의 답변에 작동 Mmenu의 이전 버전하지만 최신 버전 (이 게시 한 시간에 최신은 5.6.1이었다)를 사용하는 경우, 당신은 같은 API 메소드를 사용하여 다음을 수행 할 수 있습니다
var api = $("#menu").data("mmenu");
api.bind("closed", function() {
api.closeAllPanels();
});
어떤 메뉴에서이 시도 클릭 :
$(".mm-subclose").trigger('click');
Trigger()는 JQuery 함수입니다. 하위 메뉴 맨 위에있는 뒤로 화살표를 클릭합니다. 서브 메뉴가 숨겨집니다. 그래서 우리가 ".mm-subclose"를 사용하면 뒤쪽 화살표의 클래스 인 Menu가 메인 레벨로 재설정됩니다.
대답을 설명하십시오. – Mazz
".mm-subclose"는 mm-menu의 뒤로 화살표 클래스입니다. 뒤로 화살표를 클릭하면 메뉴가 메인 레벨로 재설정됩니다. 그래서이 코드를 클릭하여 하위 메뉴에 추가하십시오. –
자바 스크립트 기능을 내 메뉴에 추가하여 홈 레벨 (# mm-1)로 이동할 수있었습니다. 또한 상대 링크를 매개 변수로 전달하여 모든 패널을 열 수 있습니다. 다음 코드에서 봐 주시기 바랍니다 :
HTML
<div class="mh-head navbar-fixed-top">
<span class="mh-btns-left"><a class="fa fa-bars"
onclick="openSubmenu('#mm-1')"></a></span>
</div>
자바 스크립트
function openSubmenu(submenu) {
instantiateComponents(submenu);
openDesiredSubmenu();
}
function instantiateComponents(submenu) {
instantiateCurrentMenu();
instantiateApi();
instantiateDesiredSubmenu(submenu);
}
function instantiateCurrentMenu() {
currentMenu = $('#menu');
currentMenu.mmenu({});
}
function instantiateApi() {
menuApi = currentMenu.data('mmenu');
}
function instantiateDesiredSubmenu(submenu) {
desiredSubmenu = currentMenu.find(submenu);
}
function openDesiredSubmenu() {
menuApi.openPanel(desiredSubmenu.closest('.mm-panel'));
menuApi.open();
}
희망이 도움이됩니다.
여러 질문에 [동일 답변] (http://stackoverflow.com/a/46717655)을 게시하지 마십시오. 하나의 좋은 대답을 올린 다음 다른 질문을 중복으로 닫으려면 vote/flag를 사용하십시오. 질문이 중복이 아닌 경우 * 질문에 대한 답변을 작성하십시오. * –
@ Paul Roub, 고맙습니다. – dolmetscher
이것은 작동하지 않습니다. 너 어디서 났니?mm- 패널과 open.mm 클래스? – MIke