我正在试图找出为什么这个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);
即使我点击了多少,窗口警报也没有显示,表示已点击editTD
答案 0 :(得分:0)
我想你需要做事件委托。
$(editTD).bind("click", new Function() {
@Override
public boolean f(Event e) {
Window.alert("editTD");
return true;
}
});
答案 1 :(得分:0)
我无法解决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");
}});
答案 2 :(得分:0)
我从未尝试使用GwtQuery,但我认为dom元素的问题。因为Dom元素应该在应用事件之前添加。
尝试在row.appendChild(editTD);
之前添加,然后添加click event
。它应该工作。
参考example of event。它可能同样适用于GwtQuery。