Функция щелчка GwtQuery не работает

Я пытаюсь выяснить, почему этот GwtQuery не работает, даже если я нажимаю на элемент метки, он не сдвигается с места:

final Element deleteTD = DOM.createTD();                                            
deleteTD.addClassName("center");
Element span2 = DOM.createSpan();                                   
span2.addClassName("label label-danger");                               
span2.setInnerText("Delete");                               
deleteTD.appendChild(span2);


$(editTD).click(new Function() {                                      
public boolean f(Event e) {                                                   
Window.alert("Edit");                                                     
return false;                                                   
}
});                                         

$(deleteTD).click(new Function() {                                                
public boolean f(Event e) {                                                                                   
return false;                                               
}                                                 
});

row.appendChild(editTD);                                    
row.appendChild(deleteTD);                                  
list.appendChild(row);

Даже то, сколько я нажимаю, предупреждение Window не отображается, чтобы показать, что был нажат editTD

3 ответа

Решение

Я не смог решить проблему с GwtQuery, но с:

                                        DOM.sinkEvents(editTD, com.google.gwt.user.client.Event.ONCLICK);
                                        DOM.setEventListener(editTD, new EventListener(){
                                            @Override
                                            public void onBrowserEvent(
                                                    com.google.gwt.user.client.Event event) {
                                                if (event.getTypeInt() != com.google.gwt.user.client.Event.ONCLICK) {
                                                    return;
                                                }
                                                Window.alert("Edit");
                                            }});                                        

Я думаю, вам нужно сделать делегирование событий.

$(editTD).bind("click", new Function() {
    @Override
    public boolean f(Event e) {
        Window.alert("editTD");
        return true;
    }
});

Я никогда не пробовал с GwtQuery, но я думаю, что проблема с элементом DOM. потому что элемент Dom должен быть добавлен до применения события к нему.

Просто попробуйте добавить, прежде чем row.appendChild(editTD); затем добавьте click event, Он должен работать.

См. Пример события. это может также относиться и к GwtQuery.

Другие вопросы по тегам