点击空白处--某个div 消失

背景:1.需要在 easyui grid 的编辑框 获取焦点的时候,在正下方展示费用类型的网格

   2.在点击费用类型网格以外的地方,该网格消失

 

思路:

  一、用easyui 的panel 作为费用类型网格的容器

    因为grid 不能显示隐藏的切换不能控制

<!--费用类型grid-->
<div class="js-costtypewrap easyui-panel" data-options="closed:true,width:400">
    <table id="costtype"></table>
</div>

  

  二、定位panel这个容器的位置

    //展示费用类型
    function showFeeType(el) {
        var wrapTop = el.offset().top + el[0].offsetHeight;
        var wrapLeft = el.offset().left - 200;
        $('.js-costtypewrap').panel('open');
        $('.js-costtypewrap').css({ 'position': 'absolute', 'top': wrapTop, 'left': wrapLeft });
    
//省略其他代码
    }

  

 三、点击文档的其他地方 让panel hide()

        $(document).one('mousedown', function () {
            if ($('.js-costtypewrap')[0].clientWidth) {
                $('.js-costtypewrap').panel('close');
            }
        });

  

  四、点击panel的时候,阻止冒泡

        这样点击panel 的时候,就不会消失了

        $('.js-costtypewrap').mousedown(function (event) {
            event.stopPropagation();
        });

 

如下:

 

敲重点

在点击easyui grid 的其他编辑框的时候,比如摘要...    费用类型的网格不能消失

原因: grid 正在编辑的输入框阻止了 click 事件的冒泡

解决方案: 使用 mousedown 事件

 

转载于:https://www.cnblogs.com/yigexiaojiangshi/p/9674310.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值