GWT - 处理双击和单击同一元素

GWT - Handle both double click and single click on the same element

我有一个带有 onClick 处理程序的自定义小部件。问题是当用户双击该元素时,第二次单击也会触发重复调用。试图通过使用 onDoubleClick 处理程序来避免它,双击时调用确实进入此处理程序,但它仅在执行 onClick 后才进行。所以重复调用仍在发生。

已经看到在 Javascript 中使用 timer 的解决方案,以避免对 double 的重复请求。在 GWT 中是否可能有类似的东西?

或者有没有其他更好的方法来避免双击 GWT 中的元素重复请求?

将小部件替换为 'loading spinner animated image',只要小部件正在执行操作即可。一旦准备就绪,将其替换回小部件。

由于图像不包含clickhandler,第二次点击将不会被接收。

我通过以毫秒为单位的当前时间来防止双击,并用这个方法的最后一次处理来检查它。如果第一次和第二次点击之间的时间少于一秒,第二次点击将被阻止。

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

How to prevent DoubleSubmit in a GWT application?

上面link中给出的答案将有助于处理按钮的双击

但是如果它的 自定义小部件.setEnabled(false) 不起作用,我们可以使用静态 boolean 变量,条件检查它是否 false 然后允许并在单击一次时将其设置为 true 然后将其设置回 false 表示成功。如果双击 boolean 值将为 true 并且 if 条件将失败。