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的AJAX用法
May 10 Javascript
jquery用data方法获取某个元素上的事件
Jun 23 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
Nov 03 Javascript
微信小程序链接传参并跳转新页面
Nov 29 Javascript
基于Vue实现后台系统权限控制的示例代码
Aug 29 Javascript
使用clipboard.js实现复制功能的示例代码
Oct 16 Javascript
vue.js数据绑定操作详解
Apr 23 Javascript
JS实现的缓冲运动效果示例
Apr 30 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
Oct 31 Javascript
js数据类型转换与流程控制操作实例分析
Dec 18 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
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
js实现砖头在页面拖拉效果
2020/11/20 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
基于Python实现粒子滤波效果
2020/12/01 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
建筑学推荐信
2013/11/03 职场文书
大学毕业生通用自我评价
2014/01/05 职场文书
文明学生事迹材料
2014/01/29 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
大学生村官演讲稿
2014/04/25 职场文书
开学典礼策划方案
2014/05/28 职场文书
高考励志标语
2014/06/05 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
放假通知范文
2015/04/14 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
css3应用示例:新增的选择器
2022/03/16 HTML / CSS