我应该使用哪个事件来收听?为什么要使用 vclick?我只是不知道使用哪种情况。
3 回答
如果 jQuery Mobile Tap 过去只能在移动设备上工作。这不再是这种情况了。
创建 VClick 是为了弥补桌面/移动设备之间的点击/点击不兼容之间的差距。
现在你可以自由使用水龙头,但几乎没有问题。在 iOS 平台上点击会失败。应改为使用 Touchstart。
例子:
点击
将在桌面和移动设备上工作。
- Android 4.1.1 - 无延迟
- iOS - 无延迟
- 桌面版 Firefox 19 和 Chrome 25.0.1364.152 - 无延迟
http://jsfiddle.net/Gajotres/PYPXu/embedded/result/
$(document).on('pagebeforeshow', '#index', function(){
$( document ).on( "vclick", '[data-role="page"]', function() {
$( this ).append( "<span style='color:#00F;'>vmouseup fired.</span>" );
});
});
轻敲:
轻敲
它以前只能在移动设备上工作,现在也可以在桌面浏览器上工作,但在 jQuery Mobile 1.1 及以下版本的 iOS 上会失败。
- Android 4.1.1 - 无延迟
- iOS - 无延迟
- 桌面版 Firefox 19 和 Chrome 25.0.1364.152 - 无延迟
http://jsfiddle.net/Gajotres/k8kSA/
$(document).on('pagebeforeshow', '#index', function(){
$( document ).on( "tap", '[data-role="page"]', function() {
$( this ).append( "<span style='color:#00F;'>tap fired.</span>" );
});
});
点击
将适用于移动设备和桌面浏览器。
- Android 4.1.1 - 可见延迟(300+ 毫秒)
- iOS - 无延迟
- 桌面版 Firefox 19 和 Chrome 25.0.1364.152 - 无延迟
http://jsfiddle.net/Gajotres/L2FHp/
$(document).on('pagebeforeshow', '#index', function(){
$( document ).on( "click", '[data-role="page"]', function() {
$( this ).append( "<span style='color:#00F;'>click fired.</span>" );
});
});
结论
如果您想要与VClick的向后 jQM 兼容性棒,在任何其他情况下使用Tap。
vclick(虚拟点击)模拟onclick事件。
http://api.jquerymobile.com/vclick/
在快速、完整的触摸事件单个目标对象之后触发点击事件。
http://api.jquerymobile.com/tap/
这取决于您在做什么,但除非您有特定的理由不这样做(例如,使用相同的 js 支持桌面和移动设备),否则我会使用 tap。
我刚刚注意到“tap”和“vclick”之间的主要区别。如果您选择一个按钮并按下回车键,'vclick' 会触发 - 'tap' 不会。