1

以下代码会在每次后续点击 2nd 时附加一个新元素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);

      }
}
4

1 回答 1

2

blur 和 focus 事件不适用于事件委托(实时或委托方法),因为它们不是冒泡事件。jQuery为此引入了特殊事件focusout和focusin。但是 GwtQuery 还不支持它们。请在那里打开一个问题,它们将被实施

于 2013-01-21T08:40:05.717 回答