GWT事件预览vs事件处理程序 [英] GWT Event Preview vs Event Handler

查看:171
本文介绍了GWT事件预览vs事件处理程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题是,事件预览和事件处理程序在GWT中有什么不同?



有一个回调函数 boolean onEventPreview(Event event)用于事件预览和回调函数 void onBrowserEvent(Event event)以及。他们很相似,所以他们之间有什么不同?特别是当事件处理程序工作完美时,什么时候应该使用事件预览?



谢谢

解决方案

DOM.addEventPreview(EventPreview预览)可让您将事件预览放在事件堆栈之上,该事件堆栈在任何 onBrowserEvent(Event event)被触发。这样,您可以在事件触发发生之前放置一些逻辑。甚至可以通过返回false来防止事件触发。例如下面的例子可以防止浏览器对mousemove和mousedown事件做出反应(点击并拖动图片,浏览器不会拖动图片的大纲)

  DOM.addEventPreview(new EventPreview(){
@Override
public boolean onEventPreview(Event event){
switch(DOM.eventGetType(event)){
case Event.ONMOUSEDOWN:
case Event.ONMOUSEMOVE:
event.preventDefault();
}
return true;
}
});

只是提醒一下,以这种方式添加eventPreviews是折旧的。正确的方法是使用 Event.addNativePreviewHandler(NativePreviewHandler handler)


My question is, what's the different between event preview and event handler in GWT.

There is a callback function boolean onEventPreview(Event event) for event preview and a callback function void onBrowserEvent(Event event) as well. They are pretty similar, so what's the different between them? Especially when should I use the event preview at all when the event handler works perfect?

thanks

解决方案

DOM.addEventPreview(EventPreview preview) lets you place an event preview on top of the event stack, which is called before any onBrowserEvent(Event event) is fired. This way you can place some logic before the event firing takes place. You can even prevent the event from firing by returning false. For example below example prevents the browser from reacting to mousemove and mousedown events.(Click and drag an image, browser won't drag an outline of image)

    DOM.addEventPreview(new EventPreview() {
        @Override
        public boolean onEventPreview(Event event) {
            switch (DOM.eventGetType(event)){
                case Event.ONMOUSEDOWN:
                case Event.ONMOUSEMOVE:
                    event.preventDefault();
            } 
            return true;
        }
    });

Just a reminder, adding eventPreviews this way is depreciated. Correct way to do it is to use Event.addNativePreviewHandler(NativePreviewHandler handler)

这篇关于GWT事件预览vs事件处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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