GWT和jQuery:如何使用jQuery删除GWT代码生成的事件

时间:2009-09-25 00:48:27

标签: jquery gwt javascript-events

如何使用jQuery删除GWT生成的Anchor上的click事件?例如,我有一些像这样的GWT代码:

Anchor a = new Anchor("name")
a.addClickHandler(new ClickHandler(){
    public void onClick(ClickEvent event) {
        //do something
    }
});

因此它会生成如下的HTML代码:

<a tabindex="0" class="gwt-Anchor" href="javascript:">name</a>

在非IE中,我可以使用它:

$('a.gwt-Anchor').attr("onclick",function() {return false;});

禁用click事件,但这对IE不起作用。我试图使用unbind()方法,它也不起作用。有没有办法做到这一点?感谢。

2 个答案:

答案 0 :(得分:2)

有没有办法在java源代码中构建这个逻辑呢?

我认为GWT的目的之一是让开发人员免于处理浏览器端实现细节。但是通过改变GWT生成的客户端代码,可以创建一个与未记录的GWT行为相当强的耦合(例如,如果说GWT的下一个版本对大多数标签使用类'GWT-SimpleAnchor',或者某些东西,会发生什么像这样,或者说它改变了它产生IE 7.0但不是IE 8.0的方式......)

答案 1 :(得分:0)

您是否尝试过此处提到的Event对象的方法:http://docs.jquery.com/Events/jQuery.EventpreventDefault()看起来很有希望。

GWT的ClickEvent也有一个preventDefault()函数,如果你有兴趣:)(我同意 mjv ,因为这应该在GWT中完成 - 我只使用用于复杂内容的外部JS库,如UI效果,AJAX推送等。