似乎Panel不继承HasClickHandlers,我不能添加一个clickHandler到DivElement.有没有办法将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()方法添加处理程序.