使用jquery移动轻击,而不是点击

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

我的代码看起来像这样:

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

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

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

还有什么已知的问题使用“点击”非点击“非移动浏览器?

jQuery Mobile的特殊事件, taphold taptapholdvclick等等,原本就是触摸鼠标事件转化为特殊事件。

例如, tapvclicktouchstart / touchendmousedown / mouseup

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

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

在启动时,检查$.support.touch ,它将返回truetap )或falseclick )。

 var custom_event = $.support.touch ? "tap" : "click"; $(document).on(custom_event, "element", function () { /* code */ }); 

在桌面和手机上testing下面的演示。

演示