javascript - 使用 jquery 移动点击而不是点击

标签 javascript android jquery ios jquery-mobile

我正在制作一个需要在移动设备和非移动设备上运行的网络应用程序。在我的应用程序中,我有几个图标,用户可以单击这些图标以使用 websockets 向服务器发送消息。

我的代码看起来像这样:

$('.button-container').on('tap', '.sender', function() {
    socket.send('Message');
});

使用“tap”而不是“click”是为了提供对 iPad(和其他移动设备)的支持,但由于这看起来有点像 hack,我有一些顾虑。

'tap' 似乎适用于我的测试浏览器 Safari 7、Chrome 34 和 Firefox 26(所有非移动浏览器),但对其他非移动浏览器的支持如何?

对于非移动浏览器,使用“点击”而不是“点击”是否存在任何已知问题?

最佳答案

jQuery Mobile 特殊事件,即 taptapholdvclick 等,最初是 touch鼠标 事件转换为特殊事件。

例如,tapvclick 要么是 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 */
});

在您的桌面和移动设备上测试以下演示。

Demo

关于javascript - 使用 jquery 移动点击而不是点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984308/

相关文章:

javascript - 字符串未被识别为有效的日期时间 - 但它在另一台服务器上运行顺利

jquery切换 "variable"div

Javascript 以美元显示

javascript - 在 WebView 中打开一个弹出窗口

android - 使用 JNI 将 android.content.Context 参数发送到函数

javascript - 如何使用未嵌套标记创建菜单行为?

javascript - 如何避免这种异步惰性模式?

javascript - 无法发出第二条警报消息

javascript - 创建一个新的 DOM 元素,其中包含多个元素并附加到 DOM

android - 应用程序卸载后共享首选项不会被清除?