美文网首页
点击空白区域关闭弹出框

点击空白区域关闭弹出框

作者: holy俊辉 | 来源:发表于2017-12-21 19:53 被阅读35次

点击区域外的空白处隐藏弹出框

最近在做一个搜索框,点击图标可以显示出搜索框,再次点击可以显示选中后的结果,但是点击区域外的空白处也是可以收缩弹出框
大致的样子就是这样


navbar.png shownavbar.png

在网上搜索的到以下的解决方案

  //点击空白区域隐藏弹出框(全局)
            $(document).click(function(e){

                // 目标区域,点击某个弹出的区域
              var pop = $('#search-navbar');

                if(!pop.is(e.target) && pop.has(e.target).length === 0) {
                    //点击外围区域隐藏弹出框
                    self.isOpen = false;
                    $scope.$evalAsync();
                }else{
                    //点击目标区域不隐藏
                    self.isOpen = true;
                    $scope.$evalAsync();
                }
            });

w3c上这样解释is方法

is() 根据选择器、元素或 jQuery 对象来检测匹配元素集合,如果这些元素中至少有一个元素匹配给定的参数,则返回 true。

if ( $target.is("li,span") ) {
    $target.css("background-color", "red");
  }

这段就是表示点击的要素要么包括li,要么包括span,否则背景不变成红色

w3c上这样解释has方法

has() 将匹配元素集合缩减为拥有匹配指定选择器或 DOM 元素的后代的子集。
如果给定一个表示 DOM 元素集合的 jQuery 对象,.has() 方法用匹配元素的子集来构造一个新的 jQuery 对象。所使用的选择器用于检测匹配元素的后代;如果任何后代元素匹配该选择器,该元素将被包含在结果中。

$('li').has('ul').css('background-color', 'red');

这段只是表示,只有选定的li元素下有ul ,ul是li的后代元素才会使背景色变成红色;

这段代码也相对较好吧,可以试着使用。

相关文章

  • 点击空白区域关闭弹出框

    点击区域外的空白处隐藏弹出框 最近在做一个搜索框,点击图标可以显示出搜索框,再次点击可以显示选中后的结果,但是点击...

  • Dialog顶部空白点击后无法关闭Dialog

    问题描述 按照UI设计,需要实现一个靠近底部显示的分享弹出框发现,点击空白区域需要关闭窗口。实现后,发现弹出框顶部...

  • 分享一个非常好用的弹出框小技巧

    相信大家或多或少都会见到这样的需求: 如图所示,点击按钮弹出下面的弹出框,点击空白处或者关闭按钮弹出框就会关闭,但...

  • vue实现点击除自身等指定元素外关闭弹出框

    需求: 点击某元素可以关闭打开弹出框,点击弹出框外可以关闭弹出框,点击框内不处理

  • react 点击其他区域关闭弹出框

    首先,页面是这样婶的: 点击上面的分享按钮后: 我想要的效果是:点击分享框外的任何地方,弹出框消失,恢复原样。 首...

  • 【前端案例】15 - 案例:模态框拖拽

    弹出框,我们也称为模态框。 1.点击弹出层,会弹出模态框, 并且显示灰色半透明的遮挡层; 2.点击关闭按钮,可以关...

  • demo1 动态显示view或弹框 动态隐藏view或弹框

    有一个弹框,弹框上边有一个关闭按钮,点击按钮,可以关闭弹框。点击弹框的周围区域也可以关闭按钮。 点击上边的隐藏弹框...

  • antd使用

    antd button按钮点击事件弹出弹框,弹框点击取消关闭,button按钮奇怪的带有focus样式

  • vue操作dom元素的三种方法介绍和分析

    相信大家在做项目的时候,肯定会遇到这样的问题:我点击新增按钮,需要弹出个弹框,然后我点击对应的关闭按钮,关闭弹框,...

  • vue操控dom

    相信大家在做项目的时候,肯定会遇到这样的问题:我点击新增按钮,需要弹出个弹框,然后我点击对应的关闭按钮,关闭弹框,...

网友评论

      本文标题:点击空白区域关闭弹出框

      本文链接:https://www.haomeiwen.com/subject/qpqzwxtx.html