递归点击同一元素的问题

问题描述 投票:-1回答:1

重复调用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;
javascript dom-events
1个回答
0
投票

在第一次单击后,您将分配单击为true,这表示您的if语句不会触发。

所以在第一个之后没有更多的click()调用。

© www.soinside.com 2019 - 2024. All rights reserved.