Функция щелчка 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.