我正在制作一个需要在移动设备和非移动设备上运行的Web应用程序.在我的应用程序中,我有几个用户可以单击的图标,以便使用websockets将消息发送到服务器.
我的代码看起来像:
$('.button-container').on('tap', '.sender', function() { socket.send('Message'); });
使用"点击"代替"点击"是为了为iPad(和其他移动设备)提供支持,但由于这看起来有点像黑客,我有一些担忧.
"tap"似乎适用于我的测试浏览器,Safari 7,Chrome 34和Firefox 26(所有非移动设备)但是如何支持其他非移动浏览器?
对于非移动浏览器,使用"点击"而非"点击"也有任何已知问题吗?
jQuery Mobile的特别活动,即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 */ });
在桌面和移动设备上测试以下演示.
演示