开发者社区> 问答> 正文

关于点击空白关闭弹窗的js写法推荐?

在很多网站,经常看到:
点击某个按钮或链接,出现一个弹窗或者展开一个模块,然后点击弹窗(模块)之外的空白,它会被关闭。看过bootstrap和一些其他的源码,有的是使用类似jQuery的.not()写的,但总感觉这样写不太好,应该怎么写是比较严谨的呢?

展开
收起
小旋风柴进 2016-03-24 13:14:43 2798 0
1 条回答
写回答
取消 提交回答
  • (document).mouseup(function(e){
      var _con = $(' 目标区域 ');   // 设置目标区域
      if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1
        some code...   // 功能代码
      }
    });

    /* Mark 1 的原理:
    判断点击事件发生在区域外的条件是:

    1. 点击事件的对象不是目标区域本身
    2. 事件对象同时也不是目标区域的子元素
      */

    这是当初在stackoverflow上看到的,非常简单的实现,这里的目标区域就是你的弹出窗口

    2019-07-17 19:12:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载