2016-06-20 9 views
1

У меня есть пользовательский виджет с onClick обработчик. Проблема заключается в том, когда пользователь дважды щелкает по элементу, дубликат вызова также запускается для второго щелчка. Старался избежать этого, используя onDoubleClick обработчик, при двойном щелчке вызов идет в этот обработчик, но он идет только после выполнения onClick. Таким образом, повторяется повторный вызов.GWT - Обращайтесь как к двойному клику, так и к одному клику по тому же элементу

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

Или есть ли другой лучший способ избежать дублирования запроса при двойном щелчке по элементам в GWT?

ответ

0

How to prevent DoubleSubmit in a GWT application?

Ответ дается в приведенной выше ссылке поможет в обработке двойного щелчка на кнопку.

Но если его пользовательский виджет и .setEnabled (ложь) не работает, мы можем иметь статический булево переменной, проверка состояния, если его ложно то разрешить и установить его в правда при щелчке один раз, затем установите его на false на успех. В случае двойного щелчка значение boolean будет true и условие if не получится.

1

Замените виджет на «анимированное изображение с загрузкой», если виджет делает это. После того, как готово, замените его на виджет.

Поскольку изображение не содержит клик-манипулятор, второй клик не будет принят.

1

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

long lastClick = 0; 
if (lastClick < System.currentTimeMillis() - 1000) 
{ 
    // do logic 
} 
lastClick = System.currentTimeMillis();