после нескольких часов поиска и поиска, я решил задать здесь.ClickHandler не запускает jquery-mobile header & footer
JqmHeader.java
public class JqmHeader extends ComplexPanel {
public JqmHeader() {
setElement(DOM.createDiv());
getElement().setAttribute("data-role", "header");
}
public void add(Widget widget) {
super.add(widget, getElement());
}
}
JqmPage.java
public class JqmPage extends ComplexPanel {
...
public JqmPage(String id) {
setElement(Document.get().createDivElement());
getElement().setAttribute("data-role", "page");
getElement().setAttribute("data-url", id);
RootPanel.get().add(page);
render(page.getId());
}
private native void render(String id) /*-{
$wnd.$("#" + id).page();
}-*/;
...
}
MyPage.java расширяет JqmPage.java
...
JqmHeader header = new JqmHeader();
Button b = new Button("TestButton");
b.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("TestButton clicked");
}
});
header.add(b);
this.add(header);
...
Моя проблема
Итак, моя проблема в том, что кнопка ClickHandler из кнопки в панели заголовка не срабатывает. Если я добавлю кнопку не в заголовок, а в «RootPage», например
this.add(b)
, все работает.
Я думаю, что он должен лежать в реализации заголовка jquery-mobile. Есть ли обходные пути/идеи?
Благодаря Берлин, Alex