el-tree节点模拟双击事件
需求描述
el-tree
组件节点默认展开,单击节点不会触发伸缩,双击节点获取当前节点的数据。
问题解决
- el-tree 默认展开并设置阻止单击节点自动展开或收缩
<el-tree default-expand-all :expand-on-click-node="false" @node-click="handleNode">
- 添加双击事件
const n = {
count: 0,
prev: null,
timer: null
}
// 双击
const dbClicks = (node, id, cb) => {
n.count++
if ((n.prev === node[id]) && n.count >= 2) {
cb()
}
n.prev = node[id]
n.timer = setTimeout(_ => {
n.count = 0
n.prev = null
}, 300)
}
- 使用
handleNode(node) {
dbClicks(node, 'id', () => {
// do sth
})
}