1

在 GWT 中,我想处理点击事件,但仅限于用户点击一天时。有一个 valueChangeHandler 但它会在值更改时触发,所以当我在同一天点击两次时它会触发一次。

其他选项是使用 addHandler 或 addDomHandler ,我可以在其中添加 ClickHandler,但它总是会触发,无论我点击一天还是转到其他月份。

对我来说这两个选项都不起作用。任何想法如何做到这一点?

4

3 回答 3

1

使用 addvalueChangeHandler 然后将值设置为其他值。这是一个黑客,但它对我有用。

calendarWidget.addValueChangeHandler(new ValueChangeHandler<Date>() {
  @Override
    public void onValueChange(ValueChangeEvent<Date> event) {
      calendarWidget.setValue(new Date(0));
    } 
 }
于 2013-10-31T15:50:52.640 回答
0

您还可以在 DateBox.getDatePicker() 和 DateBox.getTextBox() 上添加处理程序。您可以像这样添加另一个处理程序...

     dateBox.addHandler(new ClickHandler() {

     public void onClick(ClickEvent event) {
     Window.alert("click"); 
     }
     }, ClickEvent.getType());
于 2013-05-22T11:55:54.377 回答
0

首先,你应该描述更多的细节。我不知道你真正想做什么。这是我的建议。

(1)。使用Cookies保存当前使用用户的信息并将过期日期设置为 1 天。

(2)。不要使用 addNewHandler。您应该使用一个处理程序实例的全局变量并将其初始化为 NULL 。起初,你会被初始化它。那可能只创建一次,您可以检查它是否为 NULL 。例如:

private CloseHandler handler;
.......
        if (handler == null) {
        handler = new CloseHandler<PopupPanel>() {
            public void onClose(final CloseEvent<PopupPanel> event) {
                ........
            }
        };
    }

(3)。您也可以使用简单的处理程序,如果触发事件,则保存在具有当前时间和唯一值的Map中(例如:登录 user.etc 的序列)。再次点击后,您将检索并匹配当前和以前的时间。

对你有用。。

于 2013-05-22T07:50:20.283 回答