Как отключить второй клик по кнопке - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть кнопка, которая открывает модал в framework7, однако, если дважды щелкнуть модал, я пытаюсь не допустить двойного щелчка по этой кнопке без удачи.

$(Button, {
  fill: true,
  raised: true,
  noFastClick: true,
  onClick: this.handle_click
})

const clickTimes: any[] = []

handle_click = (button) => {
   const clickTime = new Date().getTime()
   clickTimes.push(clickTime)
   if (clickTimes.length > 1) {
       console.log("double click detected")
       button.disabled = true
       clickTimes.length = 0
       return
   }
}

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Так как вы уже записываете количество кликов.Как насчет того, чтобы отключить кнопку, когда модальное окно открыто, и включить ее, когда модальное окно закрыто?

return <button
  type='button'
  className={
    this.state.isModalActive ? 'disable' : ''
  }
  onClick={ this.handleClick }
>

Убедитесь, что вы обновляете состояние isModalActive на каждомвзаимодействие с кнопкой.

0 голосов
/ 28 февраля 2019

Вы можете проверить, что свойство detail события имеет значение 1, то есть это не второй щелчок двойным щелчком.

If (e.detail !== 1) { return }

или использовать что-то вроде lodash s throttle

handle_click = _.throttle(func, 500)

, что обеспечит возможность вызова функции чаще всего один раз за 500ms

...