我正在开发一个带有树组件的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次单击!!!!
您是否经历过类似的事情?你有解决方法吗?
谢谢!
答案 0 :(得分:2)
解决!!
我们看到Vaadin论坛上有一个旧的Ticket (#8384)来描述这种行为。
建议的解决方案是在树对象上 setImmediate(false),但我们想让代码更清晰,我们决定删除 setImmediate() 来自代码。我们测试了new Tree().isImmediate() == false
(默认值),因此它应该可以工作。
经过大量的测试,研究和调试......我决定实际编写 setImmediate(false)我们的代码(应该没有必要)和神奇地现在,我们的代码在Firefox中工作得很好!!!
我希望这会对某人有所帮助。