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

时间:2016-06-20 10:14:29

标签: java gwt onclick double-click ondoubleclick

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

已经在 Javascript 中看到了计时器的解决方案,以避免重复请求。是否可以在 GWT 中使用类似的东西?

或者是否有其他更好的方法可以避免重复请求双击 GWT 中的元素?

3 个答案:

答案 0 :(得分:1)

只要小部件正在执行操作,就用“加载微调器动画图像”替换小部件。准备好后,用小部件替换它。

由于图像不包含点击处理程序,因此不会再接收第二次点击。

答案 1 :(得分:1)

我通过以毫秒为单位获取当前时间来防止双击,并在上次处理此方法时进行检查。如果第一次和第二次点击之间的时间不到一秒,则第二次点击就会被阻止。

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

答案 2 :(得分:0)

How to prevent DoubleSubmit in a GWT application?

上述链接中给出的答案有助于处理双击按钮

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