vue点击页面空白处实现保存功能


Posted in Javascript onNovember 06, 2019

vue点击页面空白处实现保存功能 

功能描述

双击表格一行实现表格编辑,点击空白处实现保存。

表格可编辑相关文章在可编辑表格

实现思路

当表格在编辑状态的时候在页面进行click监听,判断点击区域是否为编辑区域,如果不是编辑区域实现保存功能并取消click监听

功能点一:页面监听与取消接听

// 通过addEventListener与removeEventListener实现
document.addEventListener("click", function, false);
document.removeEventListener("click", function, false);

功能点二:判断点击区域是否为可编辑区域

该功能点有一定难度,首先你需要判断点击区域是否为表格区域,其次你要判断点击的区域是否为编辑状态的呢一行。所以我分为两步去实现

1、判断点击区域是否为表格区域

该功能点通过 contains 接口实现。判断条件为 tableDom.contains(target) ;该接口可以判断target是否为tableDom的子节点。

// 首先通过addEventListener 传入点击的dom区域
document.addEventListener(
 "click",
 e => {
  this.judgeClickDom(e);
 },
 false
 );
// this.bindClick是为了取消监听,下文会进行描述

// 判断点击是否为table区域
judgeClickDom(e) {
 const { target } = e;
 let tableDom = document.getElementsByClassName("table");
 
// getElementsByClassName获取到的是数组,一定要有下标不然会报错

// 如果我们点击的区域在表格外保存数据
 if (!tableDom[0].contains(target)) {
 this.saveTableData();
 }
},

2.判断点击区域是否为编辑状态的那一行

该功能借助了element框架, 如何标记编辑状态行,在可编辑表格中已有介绍

取消监听

由于我们监听click时使用的是箭头函数,没有函数名或者函数表达式,所以在取消监听的时候会出现问题。 我的解决方案是给他绑定一个全局变量bindClick。 代码如下

// 开始监听
document.addEventListener("click",
 (this.bindClick = e => {
  ...
 })
);

// 取消监听
document.removeEventListener("click", this.bindClick);

总结

以上所述是小编给大家介绍的vue点击页面空白处实现保存功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Extjs NumberField后面加单位实现思路
Jul 30 Javascript
js获取事件源及触发该事件的对象
Oct 24 Javascript
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
JavaScript面向对象编写购物车功能
Aug 19 Javascript
jquery对Json的各种遍历方法总结(必看篇)
Sep 29 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
利用js给datalist或select动态添加option选项的方法
Jan 25 Javascript
浅谈vue父子组件怎么传值
Jul 21 Javascript
iphone刘海屏页面适配方法
May 07 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 #Javascript
微信小程序网络请求实现过程解析
Nov 06 #Javascript
vue 自定义右键样式的实例代码
Nov 06 #Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
Nov 06 #Javascript
vue 解决computed修改data数据的问题
Nov 06 #Javascript
微信小程序页面渲染实现方法
Nov 06 #Javascript
微信小程序页面间传递数组对象方法解析
Nov 06 #Javascript
You might like
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
获取body标签的两种方法
2011/10/13 Javascript
nodejs中exports与module.exports的区别详细介绍
2013/01/14 NodeJs
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
Java中实现多态的机制
2015/08/09 面试题
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
文明村镇申报材料
2014/05/06 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL