2016-10-26 2 views
0

Я работаю над обновлением кода для сайта электронной коммерции, мобильное меню использует плагин JQuery jPanelMenu и код выглядит следующим образом:jQuery - на jPanelMenu, как закрыть переключаемое подменю при нажатии в любом месте за его пределами?

var jPM = $.jPanelMenu({ 
    menu: '#mainMenu', 
    trigger: '.mobileMenuLink', 
    duration: 300 
}); 
jPM.on(); 

$('.styloSearch').clone().prependTo($('#jPanelMenu-menu')); 

$('#jPanelMenu-menu').removeClass("sf-menu sf-js-enabled sf-arrows"); 

$('#jPanelMenu-menu li.menu-parent-item a').click(function(e){ 
    $(this).siblings("ul").toggle(); 
    e.preventDefault(); 

}); 

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

Любая идея, как достичь этого?

Большое спасибо!

ответ

0

использовать $('*') селектор, который выбирает все элементы

вам нужно сохранить исходную функцию тоже, и добавить:

$('*').click(function(e){ 
    $(this).siblings("ul").hide(); 
    e.preventDefault(); 
}); 
+0

Я просто попытался это, но это только позволяет мне открыть и закрыть подменю один раз и тогда я не могу открыть ни одного из них. Но, также, основная проблема сохраняется, и я могу закрыть ее, щелкнув по самому меню. – adp

+0

как насчет этого? . '$ ('*') нажмите (функция (е) { $ ('# jPanelMenu меню') братья и сестры ("уль") скрыть();.. e.preventDefault(); }); ' –

Смежные вопросы