GWT中现有元素上的ClickHandler
我有一个HTML文档。在该文档中,有一个ID为的元素(如button、div、a)。我知道我可以使用:GWT中现有元素上的ClickHandler,gwt,Gwt,我有一个HTML文档。在该文档中,有一个ID为的元素(如button、div、a)。我知道我可以使用: Document.get().getElementById("id"); 在HTML文件中查找所需的元素。如何向其添加单击处理程序?ClickHandler似乎仅在Button类上可用 谢谢如果您试图将点击处理程序添加到中,您可以使用 对于(Anchors只有ClickListeners,而不是ClickHandlers…) 对于,您可以使用(标签s只是s)。建议: 尝试学习如何使用UiBi
Document.get().getElementById("id");
在HTML文件中查找所需的元素。如何向其添加单击处理程序?ClickHandler似乎仅在Button类上可用
谢谢如果您试图将
点击处理程序
添加到
中,您可以使用
对于(Anchor
s只有ClickListener
s,而不是ClickHandler
s…)
对于
,您可以使用(标签s只是
s)。建议:
尝试学习如何使用UiBinder(在GWT2.0中添加)
在您的情况下,您本可以:
yourView.ui.xml
...
<g:Button ui:field="btnName" />
...
。。。
...
yourView.java
public class yourView extends Composite {
interface MyUiBinder extends UiBinder<LayoutPanel, yourView> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@UiField Button btnName;
public yourView() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("btnName")
void handleClick(ClickEvent e) {
//Do whatever
}
}
public类yourView扩展了复合{
接口MyUiBinder扩展了UiBinder{}
私有静态MyUiBinder=GWT.create(MyUiBinder.class);
@UiField按钮btnName;
公共视图(){
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler(“btnName”)
无效手柄点击(点击事件e){
//做任何事
}
}
使用“@UiHandler”,您可以添加小部件可以支持的任何处理程序(实现有****处理程序)。向该结构添加其他元素既简单又快速,您可以向其中添加任何类型的处理程序@UiField创建一个变量,该变量包含可在类中任何位置操作的元素实例。另一个建议-使用GQuery。它可以轻松地将简单的事件侦听器附加到DOM,而无需创建GWT小部件经常执行的额外元素:
$("id").click(new Function() {
public boolean f(Event e) {
Window.alert("This is GWT code without widget baggage!");
return true;
}
});
请参见此处了解更多信息:
遗憾的是,没有更多基于渐进增强的GWT代码。我的意思是,CSS/HTML在设计/标记方面做得很好——这正是我想要取代的Javascript 只需设置事件侦听器即可
Event.sinkEvents(e, Event.ONCLICK);
Event.setEventListener(e, new EventListener() {
@Override
public void onBrowserEvent(Event event) {
Window.alert("Clicked!");
}
});
这里列出了两种选择:这对我来说似乎相当昂贵。下面的解决方案更有效。谢谢你的帮助!完美的你帮了大忙。我一直试着做一些新的按钮(元素)。谢谢此外,您还可以使用HTML.wrap()处理与Jason提到的按钮/锚定/标签分组不匹配的任何内容。如果UI内置于GWT中,这一点很有效,但他的问题是如何将单击处理程序(以及其他GWT功能)添加到页面上现有的HTML中。但是,如果他是在GWT中构建整个页面,那么这肯定是一条路要走。