我有一个 GWT CellList。每个单元格有一个图像、两个标签和一个按钮。
每当用户单击单元格时,就会发生 onSelected 事件。
如果用户单击一个按钮,我想触发 onClick 事件,如果单击其他区域(不是内部按钮),我想触发 onSelected。
有可能这样做吗?
我有一个 GWT CellList。每个单元格有一个图像、两个标签和一个按钮。
每当用户单击单元格时,就会发生 onSelected 事件。
如果用户单击一个按钮,我想触发 onClick 事件,如果单击其他区域(不是内部按钮),我想触发 onSelected。
有可能这样做吗?
onBrowserEvent(...)
最简单的方法是覆盖AbstractCell<C>
. 这是我如何实现它来处理<a/>
元素上的点击事件:
@Override
public void onBrowserEvent(Context context, Element parent, BIBonusDto value, NativeEvent event,
ValueUpdater<BIBonusDto> valueUpdater) {
super.onBrowserEvent(context, parent, value, event, valueUpdater);
if ("click".equals(event.getType())) {
EventTarget eventTarget = event.getEventTarget();
if (!Element.is(eventTarget)) {
return;
}
if (parent.getElementsByTagName("a").getItem(0).isOrHasChild(Element.as(eventTarget))) {
if (valueUpdater != null)
valueUpdater.update(value);
}
}
}
单元格模板如下所示:
<div id='info' class='campaign' style='cursor:default;'>
<div id='claim-inner2'>
<a id='claim-inner1' style='cursor:pointer;'>
<div id='claim-inner' title='Claim Points Now'></div>
</a>
</div>
</div>
我们必须检查事件的类型是否正确以及它是否是一个元素,然后我们可以检查它是否正确并将操作委托给值更新器回调。
我想你想要这样的东西, http://gwt.google.com/samples/Showcase/Showcase.html#! CwCellSampler
您可以使用 ActionCell 或 ButtonCell。
让我知道这是否符合您的目的。