gwt点击事件文档 [英] gwt click event document
问题描述
我需要向文档注册跨平台和版本独立的点击事件。
这意味着我有一个两个文本框和提交按钮,但当我点击两个文本框之外并提交按钮,然后
警告将显示。我可以通过gwt
i need to register a cross platform and version independent click event to the document. that means i have a two text box and submit button but when i click outside of the two text box and submit button then alert will be displayed .how can i achive this by gwt
document.get()。addMouseClick ???
document.get().addMouseClick ???
推荐答案
要将所有内容封装在 FocusPanel
:
The easiest way that comes to mind is to wrap everything in a FocusPanel
:
ClickHandler clickHandler = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("TextBox/Button clickHandler.");
event.stopPropagation(); // The important line - We stop the event
// propagation here so that the FocusPanel
// doesn't get the event
}
};
TextBox textBox = new TextBox();
textBox.addClickHandler(clickHandler);
Button button = new Button("Test");
button.addClickHandler(clickHandler);
// Since FocusPanel is a SimplePanel, it can only have one child, so we are
// wrapping everything additionally in a HorizontalPanel
HorizontalPanel hPanel = new HorizontalPanel();
hPanel.add(textBox);
hPanel.add(button);
FocusPanel focusPanel = new FocusPanel(hPanel);
focusPanel.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("Outside."); // Clicked outside of the TextBox/Button
}
});
RootPanel.get().add(focusPanel);
缺点是你需要分配 ClickHandler
ClickHandler 来保存内存,就像我上面所做的那样)。除此之外, FocusPanel
实施应确保onclick行为保持跨浏览器。
The downside is that you need to assign ClickHandler
s to every element you don't want an alert for (you can use the same ClickHandler
for that to save memory - like I did above). Other than that, the FocusPanel
implementation should ensure that the onclick behavior stays cross-browser.
这篇关于gwt点击事件文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!