zoukankan      html  css  js  c++  java
  • 点击空白处--某个div 消失

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

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

     

    思路:

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

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

    <!--费用类型grid-->
    <div class="js-costtypewrap easyui-panel" data-options="closed:true,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 事件

     

  • 相关阅读:
    Servlet概述
    JAVA WEB开发环境与搭建
    Java scirpt简介
    用HTML+CSS编写一个计科院网站首页的静态网页
    CSS样式
    HTML简介
    Web服务器的原理
    静态网页与动态网页的区别
    debugger工具的使用以及调试
    javascript页面刷新的几种方法
  • 原文地址:https://www.cnblogs.com/yigexiaojiangshi/p/9674310.html
Copyright © 2011-2022 走看看