2012-06-20 6 views
0

после нескольких часов поиска и поиска, я решил задать здесь.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

ответ

0

JQuery Mobile глотает события на заголовках, так они не распространяются на GWT. Что я сделал для решения этой проблемы для jqm4gwt (https://github.com/sksamuel/jqm4gwt), должен был иметь общий слушатель на уровне страницы, а затем сравнивать источник событий. Если это была кнопка в заголовке, я запускаю это событие на кнопке вручную.

Посмотрите на bindHeaderEvents в https://github.com/sksamuel/jqm4gwt/blob/master/src/main/java/com/sksamuel/jqm4gwt/JQMPage.java

Кроме того, проект jqm4gwt может быть хорошим решением для вас, чтобы сохранить вас от необходимости придумывать все эти виджеты себя.

0

Если вы хотите взглянуть на чистое решение GWT для создания мобильных приложений, которые вы могли бы взглянуть на http://www.m-gwt.com

Смежные вопросы