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 相关文章推荐
20个非常棒的 jQuery 幻灯片插件和教程分享
Aug 23 Javascript
jQuery is()函数用法3例
May 06 Javascript
js带闹铃功能的倒计时代码
Sep 29 Javascript
详解Angular Reactive Form 表单验证
Jul 06 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
微信网页授权并获取用户信息的方法
Jul 30 Javascript
javascript将非数值转换为数值
Sep 13 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
Nov 05 Javascript
创建echart多个联动的示例代码
Nov 23 Javascript
微信小程序仿通讯录功能
Apr 09 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 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
Symfony数据校验方法实例分析
2015/01/26 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
js性能优化技巧
2015/11/29 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
logging level级别介绍
2020/02/21 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
详解python算法常用技巧与内置库
2020/10/17 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
vue+django实现下载文件的示例
2021/03/24 Vue.js
建筑总经理岗位职责
2014/02/02 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
军训后的感想
2015/08/07 职场文书
关于MySQL中explain工具的使用
2023/05/08 MySQL