1.在el-table标签上添加cell-dblclick事件
<el-table
:data="tableData.body"
border
@selection-change="selectionChange"
ref="multipleTable"
:row-key="getRowKeys"
v-if='activate==2'
style="width: 100%"
max-height="700"
@cell-dblclick="celldblclick"//实现双击复制的事件
>
</el-table>
注:cell-dblclick 函数有四个参数,分别是row, column, cell, event;
(1) row就是被操作单元格所在行的所有的数据
(2) cloumn可以看到被操作单元格的property,根据property可以再row中得到该单元格的值;
(3) cell:可到该单元格的dom结构;
(4) event可以根据其type属性值得到操作该单元格的事件名称
2.在mehods中定义实现cell-dblclick事件对应的celldblclick方法
celldblclick(row, column, cell, event){
console.log(row, column, cell, event)
if( event.type === "dblclick"){
var save = function (e){
e.clipboardData.setData('text/plain',row.seriesName);
e.preventDefault();//阻止默认行为
}
document.addEventListener('copy',save);
document.execCommand("copy");
document.removeEventListener('copy',save);
}
this.$message({message: '复制成功', type:'success'}) //复制成功后提示
},
打印出来的值为
注:
(1)event.type === "dblclick" 表示是双击操作
(2)clipboardData
是JavaScript剪切板对象,该对象提供了3个常用方法:
clearData(): clipboardData对象从剪切板删除一种或多种数据格式(一个参数:数据类型)
getData(): clipboardData对象从剪切板获取指定格式的数据(一个参数:数据类型)
setData(): clipboardData对象赋予指定格式的数据(两个参数:数据类型,要赋予的值)
数据类型一般为““text/plain”