在preventDefault之后重新触发事件 [英] Re-fire event after a preventDefault

查看:133
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆