使用jquery移动点击而不是单击

时间:2014-01-07 23:43:09

标签: javascript android jquery ios jquery-mobile

我正在制作一个需要在移动设备和非移动设备上运行的Web应用程序。在我的应用程序中,我有几个用户可以单击的图标,以便使用websockets将消息发送到服务器。

我的代码类似于:

$('.button-container').on('tap', '.sender', function() {
    socket.send('Message');
});

使用“点按”而不是“点击”来为iPad(和其他移动设备)提供支持,但由于这看起来有点像黑客,我有一些顾虑。

'tap'似乎可以在我的测试浏览器,Safari 7,Chrome 34和Firefox 26上运行(所有非移动设备)但是如何支持其他非移动浏览器?

对于非移动浏览器,使用'点击'而非'点击'也有任何已知问题吗?

1 个答案:

答案 0 :(得分:9)

jQuery Mobile特殊事件,即taptapholdvclick ...等,最初是触摸鼠标事件转换成特别活动。

例如,tapvclick可以是touchstart / touchendmousedown / mouseup

在加载jQuery Mobile时,它会检查浏览器是否支持 touch ,因此事件会转换为鼠标事件或触摸事件。

您可以根据浏览器的触控支持在事件之间切换。对于非触摸式浏览器,请使用click和支持touch的浏览器,使用tap

启动时,检查$.support.touch,它将返回 true tap)或 false click)。

var custom_event = $.support.touch ? "tap" : "click";

$(document).on(custom_event, "element", function () {
  /* code */
});

在桌面和移动设备上测试以下演示。

  

<强> Demo