我有这种情况,我在页面上显示成功/错误消息,然后当用户在页面上执行任何操作时我希望它消失(我假设触发了点击事件,我可以忽略像去的事件到新的标签/窗口等。)。
我在页面上有其他“uihandlers”和“clickhandlers”。因此,如果我点击页面上的空白区域,则只会触发hidemessage
来电,否则,如果我点击有效的“可点击”元素,我的hidemessage
会先触发相应的处理程序。
有没有办法在不向页面上的所有点击工具添加hidemessage
的情况下实现此目的?
修改:邮件小部件不是PopupPanel
,因此setAutohide(true)
无效。但这正是我正在寻找的行为。窗口小部件是extends Composite implements HasWidget, HasClickHandlers
答案 0 :(得分:0)
您可以在错误消息上执行此操作:
myPopupPanel.setAutoHideEnabled(true);
它完全符合您的需要。您还可以考虑在历史事件上设置自动隐藏(主要是后退按钮):
myPopupPanel.setAutoHideOnHistoryEventsEnabled(true);
编辑:
如果您没有使用PopupPanel,可以让您的Widget实现EventPreview,然后:
public boolean onEventPreview(Event event) {
Element target = DOM.eventGetTarget(event);
boolean widgetIsTarget = (target != null) && DOM.isOrHasChild(getElement(), target);
setVisible(widgetIsTarget):