单击外部div运行脚本

时间:2015-07-18 19:39:25

标签: jquery events selector

我有这个简单的脚本,我想知道如果用户在.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();
        }
    });
  });

您可以在此处找到整个代码 http://jsfiddle.net/8sn2nc3L/

2 个答案:

答案 0 :(得分:1)

您可以添加以下内容:JS Fiddle

$(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");
    }
});

答案 1 :(得分:0)

您可以使用$(event.target).is('.side')查看当前点击的目标。如果它是假的,那意味着点击不在您的div之外。

http://jsfiddle.net/8sn2nc3L/5/

$(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();
          }
      });
  });