zoukankan      html  css  js  c++  java
  • 点击页面其他区域隐藏弹出层

    弹出层简称pop,隐藏方法有两种。

    1. pop上阻止冒泡,document上click隐藏pop

    jquery实现

    $("#showPop").on("click", function(e) {
        $("#pop").show();
    
        $(document).one("click", function() {
            $("#pop").hide();
        });
    
        e.stopPropagation();
    });
    $("#pop").on("click", function(e) {
        e.stopPropagation();
    });    

    pop show时注册一次document的click,可以减少document click的无谓触发和pop检测。

    2. document上click,检测事件源,是否为pop或其子元素,不是则隐藏pop

    js实现

    $(document).bind('click', function(e) {
        var e = e || window.event; //浏览器兼容性
        var elem = e.target || e.srcElement;
        while (elem) { //循环判断至跟节点,防止点击的是pop子元素
            if (elem.id && elem.id == 'pop') {
                return;
            }
            elem = elem.parentNode;
        }
    
        $('#pop').css('display', 'none'); //点击的不是pop或其子元素
    });        

    jquery实现

    $(document).bind("click", function(e) {
        var target = $(e.target);
        if (target.parents(".pop").length === 0) {
            $(".pop").hide();
        }
    })


    参考:https://www.zhihu.com/question/26391484/answer/32635684
       http://www.cnblogs.com/dolphinX/p/3239530.html

  • 相关阅读:
    插入排序
    APPlication,Session,Cookie,ViewState和Cache之间的区别
    sqlserver 2005新特性
    选择排序
    Transact_SQL小手册
    装箱和取消装箱
    select语句的执行步骤:
    using 的三种用法
    创建索引及撤销
    (转译)用FFmpeg和SDL写播放器08软件缩放
  • 原文地址:https://www.cnblogs.com/mengff/p/5394675.html
Copyright © 2011-2022 走看看