执行代码后如何重设javascript'.one'函数?

时间:2019-04-16 02:53:40

标签: javascript jquery

我正在尝试设置一个避免用户同时单击多次的按钮。我尝试过

方法1:

emf

方法2:

$(document).one('click','.button',function(){
    //coding......
});

在方法1中,是否可以重置功能“ .one”?
因为我允许用户再次单击'// coding'的一部分 返回false。 也许还有另一种选择?

2 个答案:

答案 0 :(得分:0)

无需多说就用例就不用说了。此代码段只是一个异步操作的示例(与setTimeout模拟)。这只是切换禁用属性。如果需要,您还可以添加/删除事件侦听器。

const button1 = document.getElementById('button')

const onClick = e => {
  button1.disabled = true
  setTimeout(() => {
    const x = Math.round(Math.random())
    if (x) {
      button.disabled = false
    } else {
      const button2 = document.createElement('button')
      button2.textContent = 'Reset'
      button2.onclick = e => {
        button1.disabled = false
        button2.remove()
      }
      document.body.appendChild(button2)
    }
  }, 1000)
}

button1.addEventListener('click', onClick)
<button id='button'>Click</button>

答案 1 :(得分:0)

您应该检查按钮是否被禁用。如果不是,则将其设置为Disabled并执行您的代码。

$(document).on('click','.button',function(){
    if ($(this).prop('disabled') === false) {
      $(this).prop('disabled',true);
         //put your code here
    }
});