jQuery和jQuery Mobile:点击vs touchstart,touchend,touchmove和点击?

时间:2016-09-09 11:24:09

标签: javascript jquery jquery-mobile touch

jQuery Mobile Tap是否对应于向这样的元素添加事件侦听器:

myElement.addEventListener("touchstart", touchStartHandler, false);

如果是,那么剩余的正常事件如touchmovetouchend等等呢?我的意思是它们在jQuery Mobile中的等价物是什么?

感谢您指导我。

2 个答案:

答案 0 :(得分:1)

内部tap使用vclick

如果您在此列表中未找到任何事件,则不会使用相同名称公开事件:https://api.jquerymobile.com/category/events/

这意味着,例如:如果您需要像往常一样处理touchstart,touchend和touchmove,您可能最终会使用一组虚拟鼠标事件处理程序:vmousedown, vmousemove, vmouseupvclick但您可能需要自己处理指针(鼠标或手指)的状态。不要忘记处理vmousecancel

此外,您应该注意等待某些事件有延迟。

以下是一个简短的摘录,来自jQuery Mobile文档,其中包含一些关键触摸设备(移动或现代混合笔记本电脑)的关键概念:

  

基于Webkit的浏览器可以合成mousedown,mouseup和click事件   在派遣事件发生后大约300毫秒。

     

jQuery Mobile taphold在750ms后触发。

     

在1500ms之后,它不是触摸事件。滚动,TouchMove和   TouchEnd事件使用此功能。阻止列表已清除。

     

我们建议您在任何时候使用click而不是vclick   触发有可能改变下面的内容   在屏幕上触摸的一点。这包括页面转换和   其他行为,如崩溃/扩展,可能导致   屏幕移位或内容被完全替换。

度过愉快的一天

答案 1 :(得分:0)

我不知道他们处理句柄的方式是否完全相同,但他们都等待一个动作然后执行funciton。 在jquery mobile中你可以做到

  

$( “P”)。在( “taphold”,函数(){
   $(本).hide();
  });   

  和

     

$(函数(){
   $(“div.box”)。bind(“tap”,tapHandler);
  
   function tapHandler(event){
     $(event.target).addClass(“tap”);
   }
  });

事件列表https://api.jquerymobile.com/category/events/