GWT MouseOverHandler 和 MouseOutHandler 可怕的结果,元素同时保持鼠标悬停和鼠标移出事件?
GWT MouseOverHandler and MouseOutHandler horrible result, element keeps fire mouse over and mouse out events at the same time?
我对 GWT MouseHandler 事件有疑问:
这是代码:
@Override
protected void extend(ServerConnector target) {
final Widget widget = ((ComponentConnector) target).getWidget();
widget.addDomHandler(new MouseOverHandler() {
@Override
public void onMouseOver(MouseOverEvent e) {
widget.setVisible(false);
}
}, MouseOverEvent.getType());
widget.addDomHandler(new MouseOutHandler() {
@Override
public void onMouseOut(MouseOutEvent event) {
widget.setVisible(true);
}
}, MouseOutEvent.getType());
}
我正在使用 Vaadin,它位于扩展连接器内。悬停元素是一个简单的标签。当我只使用 MouseOverHandler 或 MouseOutHandler 时,一切都很好,但是当我一起使用它们时,我得到了这个可怕的结果(请观看视频以理解我的意思):
http://tinypic.com/player.php?v=jrxpq0%3E&s=8#.VMSkFnCUc4Q
为什么MouseOverHandler和MouseOutHandler在一起时会这样?
这与gwt无关。当鼠标悬停在小部件上时,您正在隐藏该小部件。当元素隐藏时,鼠标不再位于其上,因此会触发 mouseOut 事件,从而使小部件再次可见。这将再次触发 mouseOver 事件并再次开始循环。
基本上是这样的:
<div onMouseOver="this.style='visibility:hidden;'" onMouseOut="this.style=''">blub</div>
或者在 jsfiddle 上玩:http://jsfiddle.net/9cwsqca4/
我对 GWT MouseHandler 事件有疑问:
这是代码:
@Override
protected void extend(ServerConnector target) {
final Widget widget = ((ComponentConnector) target).getWidget();
widget.addDomHandler(new MouseOverHandler() {
@Override
public void onMouseOver(MouseOverEvent e) {
widget.setVisible(false);
}
}, MouseOverEvent.getType());
widget.addDomHandler(new MouseOutHandler() {
@Override
public void onMouseOut(MouseOutEvent event) {
widget.setVisible(true);
}
}, MouseOutEvent.getType());
}
我正在使用 Vaadin,它位于扩展连接器内。悬停元素是一个简单的标签。当我只使用 MouseOverHandler 或 MouseOutHandler 时,一切都很好,但是当我一起使用它们时,我得到了这个可怕的结果(请观看视频以理解我的意思):
http://tinypic.com/player.php?v=jrxpq0%3E&s=8#.VMSkFnCUc4Q
为什么MouseOverHandler和MouseOutHandler在一起时会这样?
这与gwt无关。当鼠标悬停在小部件上时,您正在隐藏该小部件。当元素隐藏时,鼠标不再位于其上,因此会触发 mouseOut 事件,从而使小部件再次可见。这将再次触发 mouseOver 事件并再次开始循环。
基本上是这样的:
<div onMouseOver="this.style='visibility:hidden;'" onMouseOut="this.style=''">blub</div>
或者在 jsfiddle 上玩:http://jsfiddle.net/9cwsqca4/