原博:https://www.cnblogs.com/feng-xl/p/9375992.html

在做项目过程中,需求是点击孔位单击弹出对话框查看产品总数,双击弹出对话框查看详情。一开始直接click和dblclick写在标签里面,但是不管怎么样,总是执行单击事件

解决办法:利用计时器,在大概时间模拟双击事件

html部分代码:

<div class="grid-content"><el-button v-for="(item,index) in items" :key="index" @click="storageCount(item.id)" @dblclick.native="storageDetail(item.id)" class="inline-cell" :class="colors[item.status]">{{item.id}}</el-button></div>

.native主要用于监听组件根元素的原生事件,主要是给自定义的组件添加原生事件。

官方对.native修饰符的解释为:有时候,你可能想在某个组件的根元素上监听一个原生事件。可以使用 v-on 的修饰符 .native js部分代码

<script>
import desDialog from './dialog';
import detailDialog from './detailDialog';
var time = null;  //  在这里定义time 为null
export default {name: 'storeTable',components: {desDialog,detailDialog},props: ['providerid'],data() {return {colors: ['space', 'isBuy'],showDialog: false,showDialogT: false};},methods: {// 单击事件函数storageCount(id) {clearTimeout(time);  //首先清除计时器time = setTimeout(() => {this.showDialog = !this.showDialog;  const obj = {};obj.cutname = id;obj.providerid = this.providerid;this.$store.dispatch('GetStorageCount', obj);}, 300);   //大概时间300ms},// 双击事件函数,清除计时器,直接处理逻辑storageDetail(id) {clearTimeout(time);  //清除this.showDialogT = !this.showDialogT;const obj = {};obj.cutname = id;obj.providerid = this.providerid;this.$store.dispatch('GetStorageDetail', obj);},close() {this.showDialog = false;},closeT() {this.showDialogT = false;}}
};
</script>
<div class="dialog-select-app"><el-dialog title="应用列表" :visible.sync="dialogSelectVisible"><div><div class="content-tool"><div class="content-row content-row--tool content-row--tool-first"><div class="content-tool--nav" style="width: 70%;"><div class="content-tool--title fl" style="float: left;">应用名称</div><el-inputplaceholder="请输入应用名称搜索"icon="search"@keyup.13.native="searchList"v-model.trim="search":on-icon-click="getDataPage"class="content-tool--input fl"></el-input></div><div class="content-tool--nav" style="width: 30%; float: right;"><div class="content-tool--operate fl"><el-button type="primary" class="content-tool--qry el-button-reset fl" @click="searchList">查询</el-button><el-button class="content-tool--reset el-button-reset fl" @click="rest">重置</el-button></div></div></div></div><div class="table"><el-table :data="appListData" v-loading="appListLoading" highlight-current-row @current-change="handleCurrentChange" @cell-dblclick ="confirmApp"><el-table-column property="appName" label="应用名称"></el-table-column><el-table-column property="appKind" label="应用类型" width="200"><template slot-scope="scope"><el-tag v-show="scope.row.appKind === 0">Android|iOS</el-tag><el-tag v-show="scope.row.appKind === 1" type="success">HTML5</el-tag><el-tag v-show="scope.row.appKind === 3" type="primary">ExMobi</el-tag></template></el-table-column></el-table></div><div class="block"><el-pagination@current-change="getAdminCurrentPageList":current-page.sync="pageNum":page-size="pageSize"layout="total, prev, pager, next":total="allDataTotal"></el-pagination></div></div><div slot="footer" class="dialog-footer"><el-button @click="dialogSelectVisible = false">取 消</el-button><el-button type="primary" @click="confirmApp">确 定</el-button></div></el-dialog></div>//这个方法是用来选中该条数据,手动再去点击确认按钮
handleCurrentChange(obj) {this.selectAppObj = obj;},//确认按钮方法confirmApp() {if (!this.selectAppObj.appId) {this.$message({message: '请选择应用!',type: 'error',});return;}apiCase.calculateNumByAppId({params: {params: {appId: this.selectAppObj.appId,},},}).then((data) => {if (data.state === 0) {const number = data.data;if (number >= 4) {this.$message({message: '同一个应用案例最多为4个',type: 'error',});} else {this.form.appId = this.selectAppObj.appId;this.form.appZone = this.selectAppObj.appZone;this.form.appKind = this.selectAppObj.appKind;this.form.appName = this.selectAppObj.appName;this.$refs.appNameForm.clearValidate();this.dialogSelectVisible = false;}}}).catch((err) => {this.$message({message: err.response.message,type: 'error',});});},

双击确认事件@cell-dblclick 也可以写成@row-dblclick

vue给同一元素绑定单击click和双击事件dblclick,执行不同逻辑相关推荐

  1. vue给同一元素绑定单击click和双击事件dblclick,双击事件dblclick无效不触发解决办法

    有时vue项目中无论是v-ondblclick:还是@dblclick ,有时会无效果.解决办法直接上代码自己看. .native主要用于监听组件根元素的原生事件 @dblclick.native= ...

  2. 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存在影响

    原文地址 背景 开发过程中遇到问题,简单写个demo 运行环境为Chrome 68 描述一下这个问题,当a标签内部存在嵌套时, 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存 ...

  3. 为同一个元素绑定多个不同的事件,并指向相同的事件处理函数方法

    1. 为同一个元素绑定多个不同的事件,并指向相同的事件处理函数方法 /*** 为同一个元素绑定多个不同的事件,指向相同的事件处理函数* @param {*} e 元素*/document.onclic ...

  4. jQuery —— 元素绑定单击事件(click),但是双击该元素也能触发单击事件,同时会触发两次单击事件的问题

    最近做项目遇到一个问题,给元素绑定了单击事件,但是双击该元素时同样会触发单击事件,并且触发两次的问题,网上找了解决办法基本上都是用 clearTimeout .setTimeout 解决,但是效果不是 ...

  5. 给html元素绑定单击和双击事件

    1 直接绑定时 双击函数被触发时 单击函数也会被触发 而且是先被触发两次 <div class="test" οnclick="test()" οndbl ...

  6. java多次点击时事件_click事件的累加绑定,绑定一次点击事件,执行多次

    我的github(PS:希望star):https://github.com/thWinterSun/v-admin 最近做项目为一个添加按钮绑定点击事件,很简单的一个事情,于是我按照通常做法找到元素 ...

  7. 解决JS双击事件dblclick触发时,同时会执行click事件中的语句

    双击dblclick事件,同时会执行click事件中的语句,当需要为一个元素同时添加这两个事件时,显然这不是我们想要的结果,举个实例,在最近做的canvas开发中使用鼠标画区域,鼠标单击一下开始画,鼠 ...

  8. 拼接的html点击事情不触发,关于在vue中拼接html的问题,点击事件无法执行

    首先是在普通文档(也就是单个html文件中进行测试,能够正常执行) 普通情况下的结果,拼接的结果能够正常渲染并且控制台有输出: 但是在vue环境之下就会出错,点击事件并没有反应, js部分: for ...

  9. Vue模拟双击事件dblclick

    通过点击次数或者时间戳实现都行: 判断条件:在300秒内有两次连续单击事件触发就是双击,否则就是单击 export default {data () {return {clickCount: 0,ti ...

最新文章

  1. 湘潭大学网络编程_湘潭大学计算机学院网络空间安全学院“湘韵”研究生论坛成功举行...
  2. SpringBoot中怎样对外开放一个接口返回Json数据
  3. C++语言基础(15)-友元函数和友元类
  4. Android之如何ubuntu环境下在手机里面快速找到apk的位置然后拉下来
  5. 文艺编程 Literate Programming (原文中英文对照)
  6. IOS视频播放器缓存
  7. ectouch2.0 php5.5_ectouch: ECTouch是一款开源的电商系统,为中小企业提供最佳的新零售解决方案。...
  8. 科普:千兆级LTE技术深度解析
  9. 【CUDA】解决NVIDIA安装程序失败问题
  10. mysql workbench 安全模式_MySQL Workbench解决安全模式
  11. HDU 5713 K个联通块(状压DP)
  12. 【最新面试】2022年软件测试面试题大全(持续更新)附答案
  13. 2022最新可用免费天气预报API接口
  14. 2023年湖北一级技师二级技师报名时间、考试时间是什么时候?
  15. 罗技 Logitech flow 连接
  16. java print快捷键_java输出语句快捷键是什么
  17. SanDisk Cruzer闪存盘插入电脑后不显示盘符解决方法
  18. 盛大游戏黄炎中——\悍将传世\开发经验谈
  19. 人工智能给敏捷项目管理带来的九大好处
  20. 《运西瓜》小游戏增加春节新玩法,可以给好友发送新春祝福了

热门文章

  1. 最新web/java/jsp实现发送手机短信验证码的注册登录功能(秒嘀科技)
  2. 2022年度C语言面试题库汇编(含完整答案)
  3. 送给女朋友的心形照片墙
  4. eclipse java ee 配置_eclipse配置javaee环境
  5. mysql: Data truncated for column ‘id‘ at row 1
  6. 2022.03.11
  7. 【网络流】 csu 1623 Inspectors
  8. 王者荣耀s18服务器维护中,王者荣耀:S18开启仅20天,三大数值怪引发众怒,天美也束手无策...
  9. 网络安全专业有哪些岗位
  10. camera 驱动原理