我正在制作一个需要运行在移动设备和非移动设备上的web应用程序。在我的应用程序中,用户可以单击几个图标,以便使用websockets向服务器发送消息。
我的代码看起来像是:
$('.button-container').on('tap', '.sender', function() {
socket.send('Message');
});使用‘点击’代替‘点击’是为了提供对iPad (和其他移动设备)的支持,但由于这似乎有点像黑客,我有一些担心。
“点击”似乎适用于我的测试浏览器,Safari 7,Chrome 34和Firefox 26 (都是非移动的),但是对其他非移动浏览器的支持如何呢?
另外,对于非移动浏览器,使用“点击”是否存在已知的问题?
发布于 2014-01-08 09:05:05
jQuery移动特别事件,即tap、taphold、vclick...etc,最初是将触摸和鼠标事件转换为特殊事件。
例如,tap和vclick要么是touchstart/touchend,要么是mousedown/mouseup。
在加载jQuery移动时,它检查浏览器是否支持触摸,并相应地将事件转换为鼠标事件或触摸事件。
根据浏览器的触摸支持,您可以在事件之间进行交替。对于非接触式浏览器,使用click和支持touch的浏览器,使用tap。
在启动时,检查$.support.touch,它将返回true (tap)或false (click).
var custom_event = $.support.touch ? "tap" : "click";
$(document).on(custom_event, "element", function () {
/* code */
});在桌面和移动平台上测试下面的演示。
https://stackoverflow.com/questions/20984308
复制相似问题