50

我正在开发一个在 Android/iOS 和台式电脑上运行的应用程序。

我应该使用click还是tap事件?

它们之间有什么区别?

“点击”可以在桌面上工作吗?如果没有,(我必须使用click)我是否错过了tap的任何优势click

4

4 回答 4

30

您可以使用.on()将函数绑定到多个事件:

$('#element').on('click tap', function() {
    ...
});

感谢@bergie3000 指出这一点

于 2013-06-30T11:25:25.443 回答
17

触摸事件和鼠标事件是完全不同的野兽。它们不可互换。

也就是说,我正在使用jQuery Touch Punch将触摸事件映射到它们的鼠标事件类似物,因此点击与点击是一样的。这使得它可以使用所有标准的 jQuery UI 优点,而无需进行任何特殊的触摸事件编程。它使用起来非常简单,到目前为止,它在 iDevices 和 Android 上都非常适合我。

于 2012-09-14T10:55:34.497 回答
10

很抱歉提出旧帖子,但对于使用 Phonegap 处理 jQuery 的任何人:

如果在“div”、“p”等不应该被点击的元素上分配,“click”事件将不会被触发,当“tap”使其在任何元素上完美运行时!我花了很长时间才注意到。

结论,如果你确实使用 jQuery mobile 开发了一些东西,我建议使用“tap”而不是“click”,因为它可能会导致一些问题

于 2014-04-10T05:22:30.597 回答
2

我会查看事件的 jQM 文档,当前文档在这里:

对于移动设备,请使用触摸事件,如果您需要鼠标事件,jQM 也为此提供了虚拟鼠标事件。

虚拟鼠标事件
我们提供了一组“虚拟”鼠标事件,它们试图抽象出鼠标和触摸事件。这允许开发人员为基本鼠标事件注册侦听器,例如 mousedown、mousemove、mouseup 和 click,并且插件将负责在幕后注册正确的侦听器,以便在尽可能快的时间内为该设备调用侦听器. 在触摸环境中,该插件保留了在传统鼠标环境中看到的事件触发顺序,例如,vmouseup 总是在 vmousedown 之前调度,vmousedown 在 vclick 之前调度,等等。虚拟鼠标事件还规范了坐标信息的提取方式事件,因此在基于触摸的环境中,可以从 pageX、pageY、screenX、screenY、clientX 和 clientY 属性中获得坐标,

我并不是说“点击”事件不会像现在这样起作用,例如您可以点击一个按钮。但是移动设备与台式机将有不同的事件

于 2012-09-14T12:25:08.383 回答