在jQuery mobile中,tap和vclick之间的区别是什么?

时间:2013-03-07 15:18:03

标签: javascript jquery html5 css3 jquery-mobile

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

3 个答案:

答案 0 :(得分:43)

如果jQuery Mobile Tap过去只能在移动设备上使用。情况不再如此。

创建VClick是为了弥补桌面/移动设备之间点击/点击不兼容之间的差距。

现在你可以自由使用水龙头,但问题很少。点击将在iOS平台上失败。应该使用Touchstart代替。

示例:

V单击

可以在桌面设备和移动设备上使用。

  • 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&amp; 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&amp; 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>" );
    });
});

结论

如果您希望向后jQM兼容性支持 VClick ,则在任何其他情况下使用点按

答案 1 :(得分:2)

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

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

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

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

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

此处提供更多信息https://coderwall.com/p/bdxjzg

答案 2 :(得分:2)

我刚刚注意到&#39; tap&#39;并且&#39; vclick&#39;。 &#39; V单击&#39;如果您选择按钮并按下回车键,则会触发 - &#39;点击&#39;没有。