Javascript jQuery/JS在单击主体时隐藏导航菜单
我试图让滑出式导航菜单右键在单击菜单本身以外的任何内容时消失 这是我的JS:Javascript jQuery/JS在单击主体时隐藏导航菜单,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图让滑出式导航菜单右键在单击菜单本身以外的任何内容时消失 这是我的JS: var menuLeft = document.getElementById( 'cbp-spmenu-s1' ), menuRight = document.getElementById( 'cbp-spmenu-s2' ), menuTop = document.getElementById( 'cbp-spmenu-s3' ), menuBottom = docum
var menuLeft = document.getElementById( 'cbp-spmenu-s1' ),
menuRight = document.getElementById( 'cbp-spmenu-s2' ),
menuTop = document.getElementById( 'cbp-spmenu-s3' ),
menuBottom = document.getElementById( 'cbp-spmenu-s4' ),
// showLeft = document.getElementById( 'showLeft' ),
showRight = document.getElementById( 'showRight' ),
showTop = document.getElementById( 'showTop' ),
showBottom = document.getElementById( 'showBottom' ),
showLeftPush = document.getElementById( 'showLeftPush' ),
showRightPush = document.getElementById( 'showRightPush' ),
body = document.body;
var a=document.getElementsByClassName('showLeft');
for(var i=0;i<a.length;i++) {
a[i].onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( menuLeft, 'cbp-spmenu-open' );
disableOther( 'showLeft' );
};
}
showLeft.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( menuLeft, 'cbp-spmenu-open' );
disableOther( 'showLeft' );
};
showRight.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( menuRight, 'cbp-spmenu-open' );
disableOther( 'showRight' );
};
showTop.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( menuTop, 'cbp-spmenu-open' );
disableOther( 'showTop' );
};
showBottom.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( menuBottom, 'cbp-spmenu-open' );
disableOther( 'showBottom' );
};
showLeftPush.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( body, 'cbp-spmenu-push-toright' );
classie.toggle( menuLeft, 'cbp-spmenu-open' );
disableOther( 'showLeftPush' );
};
showRightPush.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( body, 'cbp-spmenu-push-toleft' );
classie.toggle( menuRight, 'cbp-spmenu-open' );
disableOther( 'showRightPush' );
};
function disableOther( button ) {
if( button !== 'showLeft' ) {
classie.toggle( showLeft, 'disabled' );
}
if( button !== 'showRight' ) {
classie.toggle( showRight, 'disabled' );
}
if( button !== 'showTop' ) {
classie.toggle( showTop, 'disabled' );
}
if( button !== 'showBottom' ) {
classie.toggle( showBottom, 'disabled' );
}
if( button !== 'showLeftPush' ) {
classie.toggle( showLeftPush, 'disabled' );
}
if( button !== 'showRightPush' ) {
classie.toggle( showRightPush, 'disabled' );
}
}
谢谢 使用事件传播来监视菜单之外文档上的单击事件
$(document).on('click', function(event) {
if (!$(event.target).closest('#menucontainer').length) {
// Hide the menus.
}
});
试试$*.notmenuRight.clickfunction{//do something};遗憾的是,不工作:/disableOther函数是否工作?尝试通过使用类“test”创建一个隐藏div并使用:$document.on'click',functionevent{if!$event.target.closest'menuRight.length{$'.test.show;};它不起作用。。代码正确吗?你的代码刚刚开始工作!现在唯一不起作用的事情就是把菜单打开。。。我不知道为什么它没有消失?
$(document).on('click', function(event) {
if (!$(event.target).closest('#menucontainer').length) {
// Hide the menus.
}
});