背景: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 事件

点击空白处--某个div 消失的更多相关文章

  1. popupwindow点击空白处如何自动消失?

    Popupwindow如果需要点击空白处自动消失,需要设置两个函数 1.customPopWindow.setFocusable(true);该函数也可以在构造函数中设置,如:mPopupWindow ...

  2. 点击空白处隐藏div

    class="bigPic"的div是被显示或隐藏的div,另外.case > ul > li是class="bigPic"的父级元素 $(&quo ...

  3. jquery 点击空白处隐藏div元素

    <style type="text/css">.pop {display:none;width: 200px;height: 130px;background: #08 ...

  4. 使用js冒泡实现点击空白处关闭弹窗

    什么是事件冒泡? 如图:在一个对象上触发某类事件(比如单击onclick事件),这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶 ...

  5. react 点击空白处隐藏弹出层

    点击空白处隐藏弹出层的原理是:在 document 上绑定事件来隐藏弹出层,这样点击任何元素的时候都会冒泡到 document 上,都会执行隐藏弹出层的功能.然后我们在不需要隐藏弹出层的元素上阻止冒泡 ...

  6. js点击空白处触发事件

    我们经常会出现点击空白处关闭弹出框或触发事件 <div class="aa" style="width: 200px;height: 200px;backgroun ...

  7. Vue 实现点击空白处隐藏某节点(三种方式:指令、普通、遮罩)

    在项目中往往会有这样的需求: 弹出框(或Popover)在 show 后,点击空白处可以将其 hide. 针对此需求,整理了三种实现方式,大家按实际情况选择. 当然,我们做项目肯定会用到 UI 框架, ...

  8. 怎么让一个div消失在视野里

    怎么让一个div消失在视野里 视野内隐藏 1.设置高度宽度为0 div { height: 0; width: 0; } 2.设置透明度为0 div { opacity: 0; } 3.设置displ ...

  9. 点击其它地方DIV隐藏

    $(document).bind('click',function(e){ var e = e || window.event; //浏览器兼容性 var elem = e.target || e.s ...

随机推荐

  1. SpringBoot入门(IDEA篇)(三)

    一.什么是JPA JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate.TopLink等. 二.Mysql数据库示例 1.在app ...

  2. 扩展中国剩余定理 exCRT 学习笔记

    前言 由于 \(\{\mathrm{CRT}\}\subseteq\{\mathrm{exCRT}\}\),而且 CRT 又太抽象了,所以直接学 exCRT 了. 摘自 huyufeifei 博客 这 ...

  3. 分享一下Ubuntu好用的源

    vim /etc/apt/sources.list 然后用G跳转到最后一行,然后[ESC]切换到命令行模式,然后键入[o](表示在当前行后插入).也可以多插入几个空行.这样可以有条理的和系统默认的区分 ...

  4. python 类,对象

    声明类 ''' class 类名: '类的文档字符串' 类体 ''' #我们创建一个类 class Data: pass 声明类 class Person: #定义一个人类 role = 'perso ...

  5. java程序没有运行选项

    1.检查module是否正确 确保src为资源文件 2.检查是否有main函数

  6. vue中实现国际化--语言切换(转载)

    https://segmentfault.com/a/1190000011800593

  7. Linux C代码 获取IP地址

    Ubuntu 16.04下,可编译通过: #include <stdio.h> #include <ifaddrs.h> #include <arpa/inet.h> ...

  8. Oracle使用总结

    1. 在ORACLE中Service Name即为数据库名称: 2. 在做删除操作时,需要加Commit进行操作提交: 3. 使用sqlldr将数据进行批量导入到ORACLE中: 3.1  Sqlld ...

  9. Vue axios 上传图片

    上传图片接口 // 上传图片 export const uploadBanner = formData => { return axios.request({ url: 'manage/slid ...

  10. pandas中数据框的一些常见用法

    1.创建数据框或读取外部csv文件 创建数据框数据 """ 设计数据 """ import pandas as pd data = {&qu ...