以下代码会在第二个div
上随后每次点击时附加一个新元素。每次添加时,焦点都会设置为添加的元素,以便为blur
方法做好准备(我正在为此目的设置tabIndex
属性)。
但是,在新元素外部点击时,即使应该有弹出窗口也没有任何反应。谁能告诉我这段代码有什么问题?
public void onModuleLoad() {
VerticalPanel vert = new VerticalPanel();
String foo = "<div id ='foo'>Foo</div>";
$("#bodywrapper").append(foo);
$("#bodywrapper").append("<div id ='boo'>Boo</div>");
$("#boo").click(new Function() {
public boolean f(Event e) {
// Window.alert("foo");
$("<div id ='goo' tabIndex = '1'>Boo</div>").appendTo("#bodywrapper").focus();
return true;
}
});
$("#goo").live("blur", new Function() {
public boolean f(Event e) {
Window.alert("Foo");
return true;
}
});
RootPanel.get().add(vert);
}
}
答案 0 :(得分:2)
模糊和焦点事件不适用于事件委派(实时或委托方法),因为它们不是冒泡事件。 JQuery为此目的介绍了特殊事件焦点和焦点。但GwtQuery尚不支持它们。请打开问题there,它们将被实施