Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
Jquery 单击外部div运行脚本_Jquery_Events_Selector - Fatal编程技术网

Jquery 单击外部div运行脚本

Jquery 单击外部div运行脚本,jquery,events,selector,Jquery,Events,Selector,我有这个简单的脚本,我想知道如果用户在.side之外单击,如何隐藏.side 脚本在这里 $(document).ready(function() { $(".side").hide(); $("a").click(function () { $(this).next().slideToggle("fast"); }); $(document).bind('keydown', function(e) { if (e

我有这个简单的脚本,我想知道如果用户在.side之外单击,如何隐藏.side

脚本在这里

  $(document).ready(function() {
      $(".side").hide();
      $("a").click(function () {
        $(this).next().slideToggle("fast");
    });
      $(document).bind('keydown', function(e) { 
        if (e.which == 27) {
            $("a").next().slideUp();
        }
    });
  });
你可以在这里找到完整的代码

您可以添加如下内容:


您可以使用
$(event.target).is('.side')
检查当前单击的目标。如果为false,则表示单击不在您的div中


请解释一下。
side.has(e.target).length==0
的意义是什么?它检查单击的目标是否是容器的子对象。如果是,它将返回大于0的值,并且不运行该函数。
$(document).mouseup(function (e)
{
    var side = $(".side");

    if (!side.is(e.target) // if the target of the click isn't side...
        && side.has(e.target).length === 0) 
    {
        side.slideUp("fast");
    }
});
$(document).ready(function () {
      $(".side").hide();
      $("a").click(function (e) {
          $(this).next().slideToggle("fast");
          e.stopImmediatePropagation();
      });
      $(document).bind('click', function (event) {
          if (!$(event.target).is('.side')) {
              $("a").next().slideUp();
          }
      });
  });