使用jquery移动轻击,而不是点击
我正在制作一个需要在移动设备以及非移动设备上运行的Web应用程序。 在我的应用程序中,我有几个用户可以点击的图标,以便使用websockets发送消息到服务器。
我的代码看起来像这样:
$('.button-container').on('tap', '.sender', function() { socket.send('Message'); });
使用“点击”而不是“点击”是为了提供对iPad(和其他移动设备)的支持,但是由于这看起来有些黑客,我有一些担心。
“tap”似乎可以在我的testing浏览器,Safari 7,Chrome 34和Firefox 26(所有非移动设备)上运行,但对其他非移动浏览器的支持如何?
还有什么已知的问题使用“点击”非点击“非移动浏览器?
jQuery Mobile的特殊事件, taphold
tap
, taphold
, vclick
等等,原本就是触摸和鼠标事件转化为特殊事件。
例如, tap
和vclick
是touchstart
/ touchend
或mousedown
/ mouseup
。
在加载jQuery Mobile时,它会检查浏览器是否支持触摸,并将事件转换为鼠标事件或触摸事件。
根据浏览器的触摸支持,您可以在事件之间切换。 对于非触摸式浏览器,请使用click
和支持touch
tap
。
在启动时,检查$.support.touch
,它将返回true ( tap
)或false ( click
)。
var custom_event = $.support.touch ? "tap" : "click"; $(document).on(custom_event, "element", function () { /* code */ });
在桌面和手机上testing下面的演示。
演示