【问题标题】:What is the difference between the click and tap events?点击事件和点击事件有什么区别?
【发布时间】:2012-09-07 12:37:02
【问题描述】:

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

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

它们之间有什么区别?

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

【问题讨论】:

    标签: jquery jquery-mobile touch-event


    【解决方案1】:

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

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

    感谢@bergie3000 指向this

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 您能详细说明它们有何不同吗?
    • @xn.:首先,mouseover、mousemove 和 mouseout 是与 touchstart、touchmove 和 touchend 不同的事件。其次,虽然它们实现了许多相同的结果,但功能略有不同——没有鼠标相当于多点触控,“点击和拖动”不能用手指完成。您可以使用我提到的工具将触摸事件映射到功能上(虽然不是物理上)等效的鼠标事件。
    【解决方案3】:

    很抱歉提出旧帖子,但对于正在使用 Phonegap 开发 jQuery 的任何人:

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

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

    【讨论】:

    • 您可以使用cursor: pointer 来获取divp 等上的点击事件。
    • @Simon_Weaver 谢谢!这随机解决了一个问题,我必须使用 js 为移动设备构建模糊侦听器 - 现在,它只是 body.mobile{pointer:cursor} css。太棒了!
    【解决方案4】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 2012-05-17
      相关资源
      最近更新 更多