重复调用onclick同一个元素只有两次,但点击动作不遵循默认动作,想法是当用户点击<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;
在第一次单击后,您将分配单击为true,这表示您的if语句不会触发。
所以在第一个之后没有更多的click()调用。