- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我遇到了一个问题,我接收了两个事件 ONMOUSEOVER
和 ONCLICK
。我的问题是 ONMOUSEOVER
被调用,但 ONCLICK
根本没有被触发!!
这是我的代码示例
LIElement elem = Document.get().createLIElement();
DOM.sinkEvents(elem, Event.ONCLICK | Event.ONMOUSEOVER);
DOM.setEventListener(elem, new EventListener() {
@Override
public void onBrowserEvent(Event event) {
if (Event.ONCLICK == event.getTypeInt()) {
//Not reaching this code block at all !!
}
if (Event.ONMOUSEOVER == event.getTypeInt()) {
//Everything is working fine here
}
}
});
这段代码在系统的其他部分工作得很好,我正在动态生成 LIElements,但我不认为这是问题所在。
这可能与附加浏览器监听器或 DOM 渲染有关吗?
任何帮助将不胜感激,我两天来一直在追求这个。
最佳答案
如果您从头开始创建 Widget(直接使用 DOM 元素,而不是简单地创建 Composite),则事件处理的设置有点奇怪。一般来说,它看起来像这样:
class MyWidget extends Widget {
public MyWidget() {
setElement(DOM.createDiv());
sinkEvents(Event.ONCLICK);
}
public void onBrowserEvent(Event evt) {
switch (DOM.eventGetType(evt)) {
case Event.ONCLICK:
// Do something insightful.
break;
}
}
}
详细说明请查看
<小时/>下面的示例代码在 Firefox 和 Chrome 中也可以正常运行(未针对其他版本进行测试)。
final Element desc = Document.get().createLIElement();
SpanElement spanElement = Document.get().createSpanElement();
spanElement.setInnerHTML("Hello");
desc.appendChild(spanElement);
DOM.sinkEvents((com.google.gwt.user.client.Element) desc, Event.ONCLICK | Event.ONMOUSEOVER);
DOM.setEventListener((com.google.gwt.user.client.Element) desc, new EventListener() {
@Override
public void onBrowserEvent(Event e) {
switch (DOM.eventGetType(e)) {
case Event.ONCLICK:
System.out.println("click");
break;
case Event.ONMOUSEOVER:
System.out.println("hover");
break;
}
}
});
关于java - GWT - SinkEvent ONCLICK 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23945498/
我有一个简单的 GWT 测试设置: 添加了处理程序: container.addDomHandler(new ClickHandler() { @Override pub
我正在使用 GWT。我通过添加 EventHandlers 开始向我的小部件添加事件。 事件处理程序示例代码: widget.addClickHandler(new ClickHandler(
我遇到了一个问题,我接收了两个事件 ONMOUSEOVER 和 ONCLICK。我的问题是 ONMOUSEOVER 被调用,但 ONCLICK 根本没有被触发!! 这是我的代码示例 LIElement
我正在尝试在 内的 anchor 元素上接收一个事件和 上的听众只是工作正常,但它不适用于任何其他元素的 anchor 。它正在处理的奇怪事情 FireFox只有 html 输出是这样的:
我是一名优秀的程序员,十分优秀!