在preventDefault之后重新触发事件 [英] Re-fire event after a preventDefault
本文介绍了在preventDefault之后重新触发事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经用preventDefault阻止了一个事件。现在我想重新抛出它。我尝试了fireEvent,但没有奏效。有没有办法实现这一点?
I have stopped an event with preventDefault. Now I want to rethrow it. I tried the fireEvent but that did not work. Is there a way to achieve this?
更新而不是fire事件,我创建了一个新的事件实例并使用elem.dispatchEvent(clickEvent );
UPDATE Instead of fire event I created a new instance of the event and used 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);
}
}
}
});
推荐答案
为什么你尝试再次解雇?试着调用你应该使用的事件处理函数
Why do u try to fire it again? Just try to call the event handler function you supposed to
这篇关于在preventDefault之后重新触发事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文