【发布时间】:2011-02-19 19:17:29
【问题描述】:
我正在使用 GWT 创建一个 Web 应用程序。我有一个方法 bookMode(),它使用一些文本框、列表框等构建 UI,并将其显示在对话框中。我这样调用方法:
//listen for mouse events on the add button
addButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
String check = Cookies.getCookie("role");
if(check == "TopBeheerder") {
boolean currentMode = mode0.getValue();
add addObject = new add();
if(currentMode == true) {
addObject.bookMode();
}
if(currentMode == false) {
addObject.userMode();
}
}
else {
BibPhp.notification("You don't have enough permissions.");
}
}
});
当我使用 GWT.log() 函数时,我注意到这个方法被调用了两次。但是我使用 eclipse 搜索功能搜索了我的所有代码,并且该方法没有被调用两次。我不知道为什么 GWT 会这样。方法 userMode() 也被调用了两次。
【问题讨论】:
-
澄清一下,您遇到的行为是每次“onclick”事件都会执行两次点击处理程序代码?
-
是的,当我点击 addButton 时,它会执行两次该方法
-
好吧,看来没有什么问题。我只是确保事件处理程序不会被无意添加两次,即确保没有以某种方式对 addClickHandler() 进行两次调用。在调用 addClickHandler() 确认之前放置一个 Window.alert()。
-
好的,我在 onClick 方法中添加了一个 Window.alert(),我收到了两次警报,我只单击了一次。我不知道为什么会这样。我在其他按钮上也有同样的问题,但不是全部。还有一些按钮,我必须点击两次才能调用事件。
-
把 alert 放在 addButton.addClickHandler(...) 下面看看是一次还是调用了两次。
标签: java javascript gwt methods