Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭一个div,同时单击该div之外的任意位置_Javascript_Jquery - Fatal编程技术网

Javascript 关闭一个div,同时单击该div之外的任意位置

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

我正在尝试创建jquery导航栏。因此,当我单击
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
}