Javascript 如何在菜单外单击关闭此幻灯片?
我目前正在用jQuery尝试一个移动网站。我在这里实现了一个非常简单的滑入菜单: 现在,我试图让它关闭时,点击任何地方,但菜单。我尝试了一些我已经找到的建议,但由于某些原因,我无法让它发挥作用 提前谢谢Javascript 如何在菜单外单击关闭此幻灯片?,javascript,jquery,Javascript,Jquery,我目前正在用jQuery尝试一个移动网站。我在这里实现了一个非常简单的滑入菜单: 现在,我试图让它关闭时,点击任何地方,但菜单。我尝试了一些我已经找到的建议,但由于某些原因,我无法让它发挥作用 提前谢谢 $(document).ready(function() { $menuLeft = $('.pushmenu-left'); $nav_list = $('#nav_list'); $nav_list.click(function() { $(
$(document).ready(function() {
$menuLeft = $('.pushmenu-left');
$nav_list = $('#nav_list');
$nav_list.click(function() {
$(this).toggleClass('active');
$('.pushmenu-push').toggleClass('pushmenu-push-toright');
$menuLeft.toggleClass('pushmenu-open');
});
});
当用户单击窗口中的任意位置时,可以删除类 然后,当单击
$pushMenu
或$nav_list
时,可以停止DOM树中冒泡的事件,以防止出现上述情况:
$(document).ready(function () {
var $menuLeft = $('.pushmenu-left'),
$nav_list = $('#nav_list'),
$pushMenu = $('.pushmenu-push');
$nav_list.click(function () {
$(this).toggleClass('active');
$pushMenu.toggleClass('pushmenu-push-toright');
$menuLeft.toggleClass('pushmenu-open');
}).add($menuLeft).click(function (e) {
e.stopPropagation();
});
$(window).click(function () {
$nav_list.removeClass('active');
$pushMenu.removeClass('pushmenu-push-toright');
$menuLeft.removeClass('pushmenu-open');
});
});
您也可以尝试以下方法。如果
目标id
不是“导航列表”
如果您单击“滑动导航”文本或带有class=“content”@dinmyte的部分,则可能重复的内容无效。谢谢,修复了。因此我使用了上述解决方案,现在我遇到了一个新问题。。。当我打开和关闭一个弹出窗口时,整个滑入菜单停止工作。在我点击F5刷新浏览器之前,这个小按钮基本上是死机。有什么想法吗?@Markusegetsberger嗨,Markus,你能提供一个现场演示吗?我正在这里运行:-在这个页面上,你只需点击两个按钮中的一个,就可以看到菜单是如何停止工作的。谢谢!
$(document).click(function(e)
{
if(e.target.id != "nav_list")
{
$nav_list.removeClass('active');
$pushMenu.removeClass('pushmenu-push-toright');
$menuLeft.removeClass('pushmenu-open');
}
});