用click()模拟鼠标点击事件
<div>
<button type="button" class="btn" @click="uploadFile">上传文件</button>
<input type="file" ref="inputs" style="display: none" @change="upload">
<div v-if="list">
文件名:{{list}}
<span @click="deleteFile">删除</span>
</div>
</div>
在做文件上传功能时,需要点击button,触发隐藏的input,要给input手动添加点击事件,代码如下:
uploadFile(){
this.$refs.inputs.click()
}
在button的点击事件里同时操作input的dom元素,给他手动添加click,这样就能上传文件了;
w3c描述的,click()可以模拟一次鼠标点击,不仅使用于单选按钮,其他元素也可以;
同时,也可以用this.$refs.inputs.dispatchEvent(new MouseEvent(‘click’))来模拟;但是还是click()更简单