我正在制作一个需要在移动设备和非移动设备上运行的网络应用程序。在我的应用程序中,我有几个图标,用户可以单击这些图标,以便使用 Websocket 向服务器发送消息。
我的代码看起来像这样:
$('.button-container').on('tap', '.sender', function() {
socket.send('Message');
});
使用“tap”而不是“click”是为了提供对 iPad(和其他移动设备)的支持,但由于这看起来有点像黑客,我有一些担忧。
“tap”似乎适用于我的测试浏览器 Safari 7、Chrome 34 和 Firefox 26(所有非移动浏览器),但对其他非移动浏览器的支持如何?
对于非移动浏览器,使用“点击”而不是“点击”是否存在任何已知问题?
jQuery Mobile 特别活动,即tap
, taphold
, vclick
...等等,原来是touch and mouse事件转化为特殊事件。
例如,tap
and vclick
是touchstart
/touchend
or mousedown
/mouseup
.
加载 jQuery Mobile 时,它会检查浏览器是否支持touch因此事件被转换为mouse事件或touch events.
您可以根据浏览器的触摸支持在事件之间交替。对于非触摸浏览器,请使用click
以及那些支持的人touch
, use tap
.
启动时,检查$.support.touch
,它将返回true (tap
) or false (click
).
var custom_event = $.support.touch ? "tap" : "click";
$(document).on(custom_event, "element", function () {
/* code */
});
在桌面和移动设备上测试以下演示。
Demo http://jsfiddle.net/Palestinian/3WY4D/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)