1

我正在开发一个带有树组件的 Vaadin 应用程序(版本 6.8.10) 。我们需要对项目的双击做出反应。但在我们的跨浏览器测试中,我们发现双击在Firefox中并不总是有效(有时有效)。

这里我们的 eventListener 代码:

 @Override
  public void itemClick(ItemClickEvent event) {
  *  if (event.isDoubleClick()) {  // Breakpoint line
       // our action
    }
  } 

在 Eclipse 中调试我们收到以下值(在每个浏览器中双击 Vaadin 后收到 2 个事件)

铬合金

收到 1° 事件

event.getButton() ==> 1

event.isDoubleClick() ==> 假

event.getButtonName() ==> 左

收到 2° 事件

event.getButton() ==> 1

event.isDoubleClick() ==>

event.getButtonName() ==> 左

火狐

收到 1° 事件

event.getButton() ==> 1

event.isDoubleClick() ==> 假

event.getButtonName() ==> 左

收到 2° 事件

event.getButton() ==> 1

event.isDoubleClick() ==>

event.getButtonName() ==> 左

恢复,在 Firefox 中,我的双击被检测为 2 次单击!!!!

你是否经历过类似的事情?你有解决方法吗?

谢谢!

4

1 回答 1

2

解决了!!

我们看到Vaadin 论坛上有一张旧的Ticket (#8384)描述了这种行为。

建议的解决方案是在树对象上设置setImmediate(false),但我们想让代码更干净,我们决定从代码中删除setImmediate()行。我们对此进行了测试new Tree().isImmediate() == false(默认情况下),因此它应该可以工作。

经过大量的测试、研究和调试......我决定在我们的代码中实际编写setImmediate(false)(这应该没有必要),现在神奇的是,我们的代码在 Firefox 中运行良好!!!

我希望这对某人有帮助。

于 2013-06-28T15:25:10.170 回答