我有一个滑动JS菜单,当你点击noty_menu链接时,它会打开,然后当你再次点击该链接时,它会关闭。有没有办法设置它,使菜单在你点击页面上的ANYWHERE时关闭?下面是相关代码:
$('.noty_menu').click(function () { $('ul.the_menu').slideToggle('medium'); });
kx1ctssn1#
你可以捕捉到身体上的一点:
$('body').click(function() { /* close menu */ });
但是在你的菜单点击中,你必须防止点击向上传播到身体。否则菜单会打开,点击会向上传播,菜单会立即关闭。return false;应该足够了:
return false;
$('.noty_menu').click(function () { $('ul.the_menu').slideToggle('medium'); return false; });
(You也可以将事件参数读入处理函数(如function(ev) { ... })并调用ev.stopPropagation())。您可能还希望防止在菜单内单击以关闭菜单:
function(ev) { ... }
ev.stopPropagation()
$('ul.the_menu').click(function () { return false; });
请注意,此解决方案附带了一个警告,即任何其他停止传播的单击事件也将阻止菜单关闭。
6qftjkof2#
u可以使用
$('body').click(function(){ //ur code });
要执行此操作
kse8i1jr3#
您可以检查整个文档,但包括单击菜单(如果您有任何空格,这可能会惹恼用户),如下所示:
var menu=$('ul.the_menu'); $(document).on('click',function(){ if(menu.height>0) { menu.slideToggle('medium'); } });
3条答案
按热度按时间kx1ctssn1#
你可以捕捉到身体上的一点:
但是在你的菜单点击中,你必须防止点击向上传播到身体。否则菜单会打开,点击会向上传播,菜单会立即关闭。
return false;
应该足够了:(You也可以将事件参数读入处理函数(如
function(ev) { ... }
)并调用ev.stopPropagation()
)。您可能还希望防止在菜单内单击以关闭菜单:
请注意,此解决方案附带了一个警告,即任何其他停止传播的单击事件也将阻止菜单关闭。
6qftjkof2#
u可以使用
要执行此操作
kse8i1jr3#
您可以检查整个文档,但包括单击菜单(如果您有任何空格,这可能会惹恼用户),如下所示: