2013-11-23 71 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);