15

我应该使用哪个事件来收听?为什么要使用 vclick?我只是不知道使用哪种情况。

4

3 回答 3

43

如果 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

于 2013-03-07T15:32:11.980 回答
2

vclick(虚拟点击)模拟onclick事件。

http://api.jquerymobile.com/vclick/

在快速、完整的触摸事件单个目标对象之后触发点击事件。

http://api.jquerymobile.com/tap/

这取决于您在做什么,但除非您有特定的理由不这样做(例如,使用相同的 js 支持桌面和移动设备),否则我会使用 tap。

更多信息在这里https://coderwall.com/p/bdxjzg

于 2013-03-07T15:27:34.643 回答
2

我刚刚注意到“tap”和“vclick”之间的主要区别。如果您选择一个按钮并按下回车键,'vclick' 会触发 - 'tap' 不会。

于 2014-05-13T07:39:46.133 回答