3
我已使用preventDefault停止事件。現在我想重新拋出它。我嘗試了fireEvent,但沒有奏效。有沒有辦法做到這一點?預防後重新啓動事件默認
UPDATE代替火災事件,我創建了一個新的事件實例,並使用elem.dispatchEvent(clickEvent);
Event.addNativePreviewHandler(new Event.NativePreviewHandler()
{
public void onPreviewNativeEvent(NativePreviewEvent event)
{
if (event.getTypeInt() == Event.ONMOUSEDOWN)
{
Element elem = JSHelper.elementFromPoint(event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY());
EventListener listener = Event.getEventListener(elem);
if((listener instanceof ListBox))
{
event.getNativeEvent().preventDefault();
//// ((ListBox) listener).fireEvent(event);
int y = event.getNativeEvent().getClientY();
int x = event.getNativeEvent().getClientX();
int screenX = event.getNativeEvent().getScreenX();
int screenY = event.getNativeEvent().getScreenY();
NativeEvent clickEvent = Document.get().createMouseEvent(
"click",true, false,0, screenX, screenY, x, y, false, false,
false, false, NativeEvent.BUTTON_LEFT, elem);
elem.dispatchEvent(clickEvent);
}
}
}
});
我沒有使用gwt,所以我無法提供答案,但對於普通的JavaScript(儘管在符合標準的瀏覽器中),MDN有[[element .dispatchEvent()'](https://developer.mozilla.org/en-US/docs/DOM/element.dispatchEvent)。 –
謝謝。我試過了我得到: (DISPATCH_REQUEST_ERR):DISPATCH_REQUEST_ERR:DOM事件異常1,我使用它:如果Event對象已經在樹中分派了。我使用的瀏覽器是鉻 – Spiff
它看起來像是如果我創建一個新的事件實例,然後我沒有得到例外,但它仍然無法正常工作。 – Spiff