我很難在着名的DOM.appendChild之後捕獲事件。經過多次嘗試使用處理程序後,我發現this answer其中@Õzbek通過偵聽器完成了這項工作。 現在我不明白爲什麼「偵聽器」工作而「處理器」不工作。 作爲代碼的例子:爲什麼Handler在Listener完成工作時不工作?
Button button = new Button("Test button");
DOM.appendChild(getElement(), button.getElement());
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
GWT.log("this doesn't work");
}
});
DOM.sinkEvents(button.getElement(), Event.ONCLICK);
DOM.setEventListener(button.getElement(), new EventListener() {
public void onBrowserEvent(Event event) {
GWT.log("this works perfectly!");
}
});
聽者會工作,但不會處理。
- 那麼,是區別beetwen呢?
- 如何強制處理程序工作?
- 是否有一些方法可以在處理程序上執行此操作?
我想了解監聽器和處理器之間的差異。 I read these answers這表明沒有太大的區別,但我仍然沒有得到它
但在某些情況下,如果您想擴展TextBox並添加按鈕以顯示某些幫助程序,那麼您沒有其他選項,該監聽程序只有一個選項,對嗎? –
您不需要「擴展文本框並添加按鈕」,就可以在複合窗口小部件中編寫文本框和按鈕。 –