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 相关文章推荐
JS仿flash上传头像效果实现代码
Jul 18 Javascript
Jquery 实现图片轮换
Jan 28 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
js实现上传图片预览方法
Oct 25 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
Jul 19 Javascript
JS实现灯泡开关特效
Mar 30 Javascript
Node.js开发之套接字(socket)编程入门示例
Nov 05 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
Dec 11 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
Jun 01 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
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
JavaScript面象对象设计
2008/04/28 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python转码问题的解决方法
2008/10/07 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
编写strcpy函数
2014/06/24 面试题
新品发布会主持词
2014/04/02 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
计算机系本科生求职信
2014/05/31 职场文书
六五普法宣传标语
2014/10/06 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android
分享Python获取本机IP地址的几种方法
2022/03/17 Python
使用Python获取字典键对应值的方法
2022/04/26 Python
Oracle中DBLink的详细介绍
2022/04/29 Oracle