如何使用 gquery 手势插件在页面上启用文本突出显示?
How to enable text highlighting on a page using gquery gestures plugin?
我有一个复杂的 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;
}
});
不幸的是,此插件似乎完全劫持了本机文本选择,因此用户无法复制和粘贴任何内容。有没有办法启用此功能或某种解决方法?
仔细查看文档后,我发现这个静态布尔值 hasGestures
可用于检查我们是否在移动设备上加载。
所以代码段现在变成:
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!");
}
我有一个复杂的 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;
}
});
不幸的是,此插件似乎完全劫持了本机文本选择,因此用户无法复制和粘贴任何内容。有没有办法启用此功能或某种解决方法?
仔细查看文档后,我发现这个静态布尔值 hasGestures
可用于检查我们是否在移动设备上加载。
所以代码段现在变成:
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!");
}