Javascript 关闭一个div,同时单击该div之外的任意位置
我正在尝试创建jquery导航栏。因此,当我单击Javascript 关闭一个div,同时单击该div之外的任意位置,javascript,jquery,Javascript,Jquery,我正在尝试创建jquery导航栏。因此,当我单击divmain时,一个新的div将向下滑动,如果我们单击新打开的窗口之外的任何位置,我想添加一个选项来关闭窗口。这是我使用过的代码,但它不起作用 当我单击新打开的div之外的任何位置时,它不会关闭 var $s = $("#main"); $(document).ready(function () { $(document.body).click(function() { $('ul.the_menu').slideTogg
div
main时,一个新的div
将向下滑动,如果我们单击新打开的窗口之外的任何位置,我想添加一个选项来关闭窗口。这是我使用过的代码,但它不起作用
当我单击新打开的div
之外的任何位置时,它不会关闭
var $s = $("#main");
$(document).ready(function ()
{
$(document.body).click(function()
{
$('ul.the_menu').slideToggle('medium');
if (!$s.has(this).length)
{
$s.hide();
}
});
});
最简单的方法是将事件附加到页面的“正文”中
$("body").click(function () {
....
});
您正在尝试使用javascript dom引用,在该引用中,您需要使用jquery选择器来应用jquery事件。我看到这个问题每周至少被问一次。我通常都能解决这个问题,但这取决于您的逻辑和标记
$menu.focusout(function(){
$(this).slideUp();
})
我将用一个基本的例子来说明总体思路。我们给你看电视。现在我们想让它消失,如果我们点击除Div之外的任何地方。所以我们在事件对象上使用stopPropagation。通常,当您单击时,单击也会向上移动父对象以及该父对象的父对象,并一直持续到您点击文档为止。这被称为“事件冒泡”。由于我们停止了冒泡,我们知道如果点击到达文档(HTML标记),它不可能来自Div,因为e.stopPropagation阻止了它。冒泡非常有用,所以只在没有子元素(不是容器)的元素上使用stopPropagation。像链接、图像和按钮之类的东西。你的意思是:
if(!$(event.target).is('#main')) {
// your code to close the div
}
你能描述一下什么不起作用吗?当我点击它以外的任何地方时,新打开的div不会关闭。请在提问时使用更好的语法和拼写。好的。我很抱歉。。。我会详细解释的。。我正在尝试创建一个jquery导航栏。。我希望它的工作方式是这样的。。有一个按钮。。当我点击它时,一个新的分区将滑下一个完整的项目列表。因此,如果我再次单击按钮,该div将关闭。Bt我想再增加一个选项,也就是说,如果我点击div之外的任何地方,它都应该关闭。。
if(!$(event.target).is('#main')) {
// your code to close the div
}