首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gwtquery .live()方法可能存在错误

gwtquery .live()方法可能存在错误
EN

Stack Overflow用户
提问于 2013-02-07 07:42:45
回答 1查看 208关注 0票数 0

我正在尝试做以下几件事:

我想为一些链接添加一个特定的处理程序,用一个类来表示。

$("a.link_list").live("click", new ListLinkHandler());

我需要.live()而不是.bind(),因为新的这样的链接将会生成。(我知道为了支持.on(),jQuery的.live()被弃用了,但是gwt-query还没有.on()。)

我像这样定义了处理程序(就像the gwtquery example does一样):

代码语言:javascript
复制
public class ListLinkHandler extends Function {
    @Override
    public boolean f(Event e) { [...] }
}

但是,当我单击这些链接时,决不会调用处理程序方法。我可以在Chrome Dev Tools中看到事件侦听器:http://screencloud.net/v/bV5V。我想它在body上,因为它是.live()

我试过使用.bind(),它工作得很好。body事件侦听器在a.link_list中发生了变化,处理程序做了它应该做的事情,但是(正如文档所述,我没有对新创建的链接进行测试)。

我为.live()方法做了filed a bug,但也许我做错了什么。

另外,我不知道没有gwtquery该怎么做,GWT似乎没有按类选择元素的方法,也没有不断向新元素添加侦听器的方法。

EN

回答 1

Stack Overflow用户

发布于 2013-02-07 21:03:25

看起来你做错了什么,但我需要更多的代码来确认。您能发送演示此错误行为的完整onModuleLoad代码吗?

我已经用live写了一个简单的例子,在Chrome和FF中,无论是添加新的gwt小部件还是使用gquery添加dom元素,它都能正常工作

代码语言:javascript
复制
public void onModuleLoad() {
  $("a.link_list").live("click",  new ListLinkHandler());

  // Add a new link via gquery
  $("<a class='link_list' href=javascript:alert('href') onClick=alert('onClick')>Click </a>").appendTo(document);

  // Add a new link via gwt widgets
  Anchor a = new Anchor("click");
  a.setStyleName("link_list");
  a.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
      Window.alert("clickHandler");
    }
  });
  RootPanel.get().add(a);
}

public class ListLinkHandler extends Function {
  @Override
  public boolean f(Event e) {
    Window.alert("live");
    return true;
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14741032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档