看来Panel没有继承自HasClickHandlers,我无法向DivElement添加clickHandler。有什么方法可以将 clickHandler 添加到 DIV 中吗?
编辑:我无法使用标签的原因是我想要可点击的 DIV 包含其他 DIV。
最佳答案
默认情况下,Panel 不会“接收”onCLick 事件。也就是说,单击面板实际上不会导致“ClickEvent”,因此不会触发处理程序。要将点击事件与Panel(或任何其他Widget)一起使用,您必须首先使用适当的事件位对其调用sinkEvents()。
例如:
SimplePanel p = new SimplePanel();
p.sinkEvents(Event.ONCLICK);
p.setTitle("Click me");
p.setSize("600px", "600px");
p.addHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event) {
Window.alert("SimplePanel clicked!");
}
}, ClickEvent.getType());
上面的代码首先使用p.sinkEvents(Event.ONCLICK);
为SimplePanel“启用”点击事件,然后继续向其添加标准ClickHandler。请注意,即使 SimplePanel 没有实现 HasClickHandlers,您始终可以使用 addHandler()
方法添加处理程序。
关于gwt - 将 ClickHandler 添加到包含许多其他小部件的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303320/