vue中的主动触发点击事件
短信预约 -IT技能 免费直播动态提醒
主动触发点击事件
由vue代码触发点击事件,实现的效果是:点击按钮,触发 <input> 输入框点击事件,从而实现选择文件。
示例如下:
<template>
<input type="file" id="input-upload-file" ref="selectFiles" multiple="multiple">
<el-button class="operation-button-select" @click="handleButtonSelected">选择文件(可多选)</el-button>
</template>
<script>
export default {
name: 'HomePage',
methods: {
// 按钮点击事件
handleButtonSelected() {
// 主动触发点击事件
this.$refs.selectFiles.dispatchEvent(new MouseEvent('click'));
},
}
}
</script>
如何自动触发点击事件
// 两秒后模拟点击
setTimeout(function() {
// IE
if(document.all) {
document.getElementById("desc1").click();
}
// 其它浏览器
else {
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
document.getElementById("desc1").dispatchEvent(e);
}
}, 1000);
desc1为元素的id,额外写上点击这个id会触发的事件。1s后就会执行
模拟点击下载文件、图片
var url = '/file/upload/202211/13/vtwtcr0x2gm.jpg';
var a = document.createElement('a');
console.log(a)
var event = new MouseEvent('click');
a.download = '';
a.href = url;
a.dispatchEvent(event);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341