【发布时间】:2013-02-07 21:03:24
【问题描述】:
我正在尝试执行以下操作:
我想为某些链接添加一个特定的处理程序,由一个类表示。
$("a.link_list").live("click", new ListLinkHandler());
我需要.live() 而不是.bind(),因为会生成新的此类链接。 (我知道 jQuery 的 .live() 已被弃用,取而代之的是 .on(),但 gwt-query 还没有 .on()。)
我这样定义处理程序(就像the gwtquery example does):
public class ListLinkHandler extends Function {
@Override
public boolean f(Event e) { [...] }
}
但是,当我单击链接时,从不调用处理程序方法。
我可以在 Chrome 开发工具中看到事件监听器:http://screencloud.net/v/bV5V。我认为它在body 上,因为它是.live()。
我尝试使用.bind(),效果很好。 body 事件侦听器在 a.link_list 中发生了变化,并且处理程序执行了它应该做的事情,但是(据记录,我没有测试)不是针对新创建的链接。
我 filed a bug 为 .live() 方法,但也许我做错了什么。
另外,如果没有 gwtquery,我不知道该怎么做,GWT 似乎没有按类选择元素的方法,也没有不断将侦听器添加到新元素。
【问题讨论】: