2013-11-23 108 views
0

有我的代碼有問題,其中面板被附加到DIV無法添加GWT事件處理

final FormPanel form = new FormPanel(); 
VerticalPanel panel = new VerticalPanel(); 
// Other code omitted for simplicity 

DOM.getElementById("modal_panel").appendChild(panel.getElement()); 

// Submit button 
panel.add(new Button("Submit", new ClickHandler() { 
public void onClick(ClickEvent event) { 
    GWT.log("Submit clicked"); 
    form.submit(); 
} 
})); 

當點擊提交按鈕它應該做的表單提交動作後GWT事件處理程序不會被觸發,但它甚至不會在DevMode控制檯上顯示GWT日誌。可能是什麼原因?

回答

0

直接在DOM中添加小部件並不是一個好主意。 GWT在添加小部件時會做很多事情。手動添加元素到DOM會導致一些問題。其中一個問題是,這些事件不會消退,處理程序將無法工作。

嘗試這樣:

DOM.sinkEvent(panel.getElement(), Event.ONCLICK); 

加入後面板。

如果你想你的面板添加到現有的HTML網頁,嘗試:

RootPanel.get("modal_panel").add(panel);