在同一元素上递归调用onclick两次,但是click操作不会遵循默认操作,
想法是,当用户单击<input />
时
它不应该弹出文件浏览器,但首先要执行一些异步任务,
然后在没有用户手势的情况下调用点击操作,从而打开文件浏览器。
示例问题
https://jsbin.com/zuzinen/edit?html,js,console,output
<body>
<input id="inp" type="file" />
</body>
var clicked = false;
function takePermission(cb) {
setTimeout(function() {
clicked = true;
cb();
}, 2000);
}
function handleClick(e) {
console.log(clicked)
if (!clicked) {
e.preventDefault();
takePermission(function() {
document.getElementById('inp').click();
});
}
}
document.getElementById('inp').onclick = handleClick;
答案 0 :(得分:0)
在第一次单击后,将clicked分配为true,这意味着不会触发if语句。
因此,第一个之后不再有对click()的调用。