我正在开发一个带有树组件的 Vaadin 应用程序(版本 6.8.10)。我们需要对项目的双击使用react。但在我们的跨浏览器测试中,我们发现双击在Firefox中并不总是有效(有时有效)。
这是我们的事件监听器代码:
@Override
public void itemClick(ItemClickEvent event) {
* if (event.isDoubleClick()) { // Breakpoint line
// our action
}
}
在 Eclipse 中调试我们收到以下值(在每个浏览器中双击 Vaadin 收到 2 个事件后)
Chrome
收到 1° 事件
event.getButton() ==> 1
event.isDoubleClick() ==> false
event.getButtonName() ==> left
收到 2° 事件
event.getButton() ==> 1
event.isDoubleClick() ==> true
event.getButtonName() ==> left
火狐浏览器
收到 1° 事件
event.getButton() ==> 1
event.isDoubleClick() ==> false
event.getButtonName() ==> left
收到 2° 事件
event.getButton() ==> 1
event.isDoubleClick() ==> false
event.getButtonName() ==> left
继续,在 Firefox 中,我的双击被检测为两次单击!!!
你也经历过类似的事情吗?你有解决办法吗?
谢谢!
最佳答案
解决了!!
我们看到有一个旧的 Ticket (#8384) Vaadin 论坛上描述了这种行为。
建议的解决方案是在树对象上setImmediate(false),但我们想让代码更简洁,因此决定删除行setImmediate() 来自代码。我们测试了 new Tree().isImmediate() == false
(默认),所以它应该可以工作。
经过大量测试、研究和调试...我决定在我们的代码中实际编写 setImmediate(false) (应该没有必要),现在神奇地,我们的代码在 Firefox 中工作正常!!!
我希望这对某人有帮助。
关于java - Vaadin 双击和浏览器行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15971437/