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 相关文章推荐
初探jquery——表单应用范例
Feb 20 Javascript
编写兼容IE和FireFox的脚本
May 18 Javascript
js实现表单检测及表单提示的方法
Aug 14 Javascript
js clearInterval()方法的定义和用法
Nov 11 Javascript
JavaScript小技巧整理
Dec 30 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
Mar 05 Javascript
JavaScript 继承详解(六)
Oct 11 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
Feb 23 Javascript
微信小程序页面上下滚动效果
Nov 18 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
Sep 06 Javascript
LayUI+Shiro实现动态菜单并记住菜单收展的示例
May 06 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
第十一节 重载 [11]
2006/10/09 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
PHP 文件上传限制问题
2019/09/01 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python实现的检测网站挂马程序
2014/11/30 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
Python threading的使用方法解析
2019/08/28 Python
Python实现word2Vec model过程解析
2019/12/16 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
荷兰手表网站:Watch2Day
2018/07/02 全球购物
鸟的天堂导游词
2015/01/31 职场文书
房屋维修申请报告
2015/05/18 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
实例详解Python的进程,线程和协程
2022/03/13 Python