有没有办法跟踪使用GWT点击哪个元素?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法跟踪使用GWT点击哪个元素?相关的知识,希望对你有一定的参考价值。
我是GWT世界的新手,以前我在使用javascript。我有一些网页,其中有多个元素。我需要跟踪使用GWT点击的元素。
我正在使用GWT 2.8.1
<div class="FileRow">
<a href="http://l24-n52:/admin/downloadresource=f&table=R_Document&id=405&filename=1000x700.jpg" target="blank" class="fileLink jpg" tabindex="1" id="jpg1"></a>
</div>
<div class="FileRow">
<a href="http://l24- n52:/admin/downloadresource=f&table=R_Document&id=405&filename=1000x700.jpg" target="blank" class="fileLink jpg" tabindex="2" id="jpg2"></a>
</div>
<div class="FileRow">
<a href="http://l24- n52:/admin/downloadresource=f&table=R_Document&id=405&filename=1000x700.jpg" target="blank" class="fileLink pdf" tabindex="3" id="pdf"></a>
</div>
GWT realization
Integer tabIndex = 1, count = 1;
for (final FieldFileInfo info : clientData.getFileInfo()) {
final FlowPanel rowPanel = new FlowPanel();
rowPanel.setStyleName("FileRow");
final HyperlinkPanel fileLink = FileInfoParser.getLinkPanel(info);
fileLink.setStyleName("fileLink");
fileLink.setTabIndex(tabIndex++);
fileLink.setText("");
switch (info.getFileExtension()) {
case "png" :
fileLink.addStyleName("png");
fileLink.getElement().setId("png");
break;
case "jpg" :
fileLink.addStyleName("jpg");
fileLink.getElement().setId("jpg"+count);
break;
case "pdf" :
fileLink.addStyleName("pdf");
fileLink.getElement().setId("pdf");
break;
default :
fileLink.addStyleName("file");
fileLink.getElement().setId("file");
}
rowPanel.add(fileLink);
count++;
}
click realization
Element openPng = Document.get().getElementById("png");
Event.sinkEvents(openPng, Event.ONCLICK);
Event.setEventListener(openPng, new OpenModalHandler());
现在我的点击实现仅适用于具有所需ID的第一个元素。但是将来可能会有几个具有相同ID的元素,因此我无法提醒另一个元素。
预期的结果是当我点击第一个元素时,GWT使用Window.alert()显示单击了哪个元素。
答案
答案很简单。要跟踪点击了哪个元素,我只修改了大小写:
fileLink.addClickHandler(new ClickHandlerData<Integer>(tabIndex) {
public void onClick(ClickEvent event) {
Window.alert("You clicked on " getData());
}
});
还使用ClickHandlerData实现新类
public abstract class ClickHandlerData<I> implements ClickHandler {
private I data;
public ClickHandlerData(I data) {
this.data = data;
}
public I getData() {
return data;
}
public void setData(I data) {
this.data = data;
}
}
以上是关于有没有办法跟踪使用GWT点击哪个元素?的主要内容,如果未能解决你的问题,请参考以下文章
GWT CELLTABLE pager 如何判断用户点击了哪个按钮?
有没有办法在sklearn中的LabelBinarizer Transform之后跟踪哪个DataFrame Column对应于哪个Array Column?