有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用gquery手势插件在页面上启用文本突出显示?

我有一个为移动设备设计的复杂GWT应用程序,在其(根)ApplicationPresenter中有以下gwtquery-gestures-plugin代码:

$(RootPanel.get())
            .as(Gesture.Gesture)
            .on("tap", new Function()
            {
                @Override
                public boolean f(Event e)
                {
                    Log.info("tap:" + e.getType() + ", x:" + e.getClientX() + ", y:" + e.getClientY());

                    // handle tap events here

                    return true;
                }
            })
            .on("swipeone", new Function()
            {
                @Override
                public boolean f(Event e)
                {
                    GestureObjects.Options o = arguments(0);
                    int delta = (int) o.delta().get(0).moved();

                    Log.info(o.description() + ":" + o.directionName() + ", x:" + e.getClientX() + ", y:" + e.getClientY() + ", delta:" + delta);

                    // handle swipe events here

                    return true;
                }

            });

不幸的是,这个插件似乎完全劫持了文本的本机选择,因此用户无法复制和粘贴任何内容。有没有办法实现这一点,或者有什么解决办法


共 (1) 个答案

  1. # 1 楼答案

    在仔细检查文档后,我发现这个静态布尔值hasGestures,可以用来检查我们是否正在移动decive上加载

    因此,代码段现在变成:

    if(Gesture.hasGestures) // only load for mobile devices
        {
            $(RootPanel.get())
                    .as(Gesture.Gesture)
                    .on("tap", new Function() 
                    {
                        @Override
                        public boolean f(Event e)
                        {
                            Log.info("tap:" + e.getType() + ", x:" + e.getClientX() + ", y:" + e.getClientY());
    
                            return true;
                        }
                    })
                    .on("swipeone", new Function()
                    {
                        @Override
                        public boolean f(Event e)
                        {
                            GestureObjects.Options o = arguments(0);
                            int delta = (int) o.delta().get(0).moved();
    
                            Log.info(o.description() + ":" + o.directionName() + ", x:" + e.getClientX() + ", y:" + e.getClientY() + ", delta:" + delta);
    
                            return true;
                        }
    
                    });
        }
        else
        {
            Log.info("Not adding gesture handlers as this is not a mobile device!");
        }