2016-03-31 19 views
0

イベントハンドラが起動しないという手掛かりはありますか?
多分私はイベントのバブリングとgwtに何か問題がありますか?あなたはイベントの種類を確認することができたEventListenerに、GWTイベントハンドラが起動しない

Event.sinkEvents(htmlp.getElementById("ul_ud1"), Event.ONCLICK | Event.ONMOUSEOVER); 

次に例えば、

Event.sinkEvents(htmlp.getElementById("ul_ud1"), Event.ONCLICK); 

あなたが複数のイベントをシンクすることができます:

public class MyNavBarUI extends Composite 
{ 
     @UiTemplate("MyNavBarUI.ui.xml") 
     interface MyUiBinder extends UiBinder<Widget, MyNavBarUI> 
     {} 

     @UiField 
     HTML html; 
     @UiField 
     HTMLPanel htmlp; 

     private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); 

     public MyNavBarUI() 
     { 
     // sets listBox 
     initWidget(uiBinder.createAndBindUi(this)); 

     html.setHTML(
         "<div id = \"ul_ud1\"> Home </div> " 
         + "<div id = \"ul_ud2\"> News </div>" 
         + "<div id = \"ul_ud3\"> Contact </div>" 
         + "<div id = \"ul_ud4\"> About </div>" 
        ); 
     } 

     @Override 
     public void onAttach() 
     { 
     super.onAttach(); 

     Event.setEventListener(htmlp.getElementById("ul_ud1"), new EventListener() { 

      @Override 
      public void onBrowserEvent(Event event) { 

       Window.alert(""+event.toString());  
      } 
     }); 

     } 
} 

答えて

0

は、あなただけのイベントをシンクする必要があります

public void onBrowserEvent(Event event) { 
    switch(event.getTypeInt()) { 
     case Event.ONCLICK: 
      Window.alert("Click"); 
      break; 
     case Event.ONMOUSEOVER: 
      Window.alert("Mouse over"); 
      break; 
    } 
} 
関連する問題