2016-03-31 20 views
0

Olay işleyicisinin neden ateş etmediğine dair herhangi bir ipucunuz var mı?
Etkinlik köpürme ve gwt ile ilgili bir sorun mu var? Eğer etkinliğin türünü kontrol edebilirsiniz EventListener içinde,GWT olay işleyicisi tetiklemiyor

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

Sonra örneğin

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

Birden olayları batar:

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());  
      } 
     }); 

     } 
} 

cevap

0

Sadece olayları batar gerekir

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