我正在制作一个需要在移动设备和非移动设备上运行的网络应用程序。在我的应用程序中,我有几个图标,用户可以单击这些图标以使用 websockets 向服务器发送消息。
我的代码看起来像这样:
$('.button-container').on('tap', '.sender', function() {
socket.send('Message');
});
使用“tap”而不是“click”是为了提供对 iPad(和其他移动设备)的支持,但由于这看起来有点像 hack,我有一些顾虑。
'tap' 似乎适用于我的测试浏览器 Safari 7、Chrome 34 和 Firefox 26(所有非移动浏览器),但对其他非移动浏览器的支持如何?
对于非移动浏览器,使用“点击”而不是“点击”是否存在任何已知问题?
最佳答案
jQuery Mobile 特殊事件,即 tap
、taphold
、vclick
等,最初是 touch 和鼠标 事件转换为特殊事件。
例如,tap
和 vclick
要么是 touchstart
/touchend
要么是 mousedown
/mouseup
.
在加载 jQuery Mobile 时,它会检查浏览器是否支持 touch 并相应地将事件转换为 mouse 事件或 touch 事件。
您可以根据浏览器的触摸支持在事件之间切换。对于非触摸浏览器,使用click
,支持touch
的浏览器,使用tap
。
启动时,检查$.support.touch
,它将返回true(tap
)或false(点击
)。
var custom_event = $.support.touch ? "tap" : "click";
$(document).on(custom_event, "element", function () {
/* code */
});
在您的桌面和移动设备上测试以下演示。
关于javascript - 使用 jquery 移动点击而不是点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984308/