Vue ElementUI el-tree 组件鼠标双击事件
el-tree组件本身是不支持双击事件的,但是项目里有个需求需要双击来执行,查看官方文档可知html代码:<el-treeclass="tree":data="nodeData":props="defaultProps"@node-click="handleNodeClick"></el-tree>注意一下,nodeData中每一项都需要一个唯一值,用来区分
·
el-tree组件本身是不支持双击事件的,但是项目里有个需求需要双击来执行,查看官方文档可知
html代码:
<el-tree
class="tree"
:data="nodeData"
:props="defaultProps"
@node-click="handleNodeClick"
></el-tree>
注意一下,nodeData中每一项都需要一个唯一值,用来区分两次的操作,我这里用的是id
js代码:
data(){
return {
nodeCount:0,
preNodeId:null,
curNodeId:null,
nodeTimer:null
}
}
methods:{
handleNodeClick(data,node,prop) {
console.log(data,node,prop);
this.nodeCount++
if( this.preNodeId && this.nodeCount >= 2){
this.curNodeId = data.id
this.nodeCount = 0
if(this.curNodeId == this.preNodeId){//第一次点击的节点和第二次点击的节点id相同
console.log('双击,执行代码写在这里');
this.curNodeId = null
this.preNodeId = null
return
}
}
this.preNodeId = data.id
this.nodeTimer = setTimeout(() => { //300ms内没有第二次点击就把第一次点击的清空
this.preNodeId = null
this.nodeCount = 0
},300)
},
}
因为用了id,所以在快速点击两个不同的节点时,也不会触发双击事件,兼容性比较好,觉得不错的话请点赞收藏下,让更多的人看到,嘻嘻
更多推荐
已为社区贡献3条内容
所有评论(0)