【问题标题】:clickon/'tap'/'touchstart'/'click' event that works on all devices and browsersclickon/'tap'/'touchstart'/'click' 事件适用于所有设备和浏览器
【发布时间】:2015-10-20 17:26:19
【问题描述】:

您好,我正在寻找 clickon/'tap'/'touchstart'/'click'

适用于所有设备,

其中一些适用于 Android,而另一些适用于 IOS,但有一个适用于所有人吗?

当我得到 3 个不同的功能来涵盖我认为的大部分功能时,

$('.tel').on('tap',function( event ) {}
$('.tel').on('touchstart' ,function( event ) {}
$('.tel').on('click' ,function( event ) {}

有什么可以为所有人工作的吗?是否经过适当测试?

【问题讨论】:

  • touchstarttap 不一样。可以与mousedownclick 进行比较。无论如何,如果您想在一行中执行此操作,只需输入$('.tel').on('tap touchstart click',function( event ) {});。此外,还有一些库可以帮助使用移动设备。我个人使用了一个名为 quojs 的迷你库。
  • 非常感谢图书馆,我会看一看,看看我能从中学到什么

标签: javascript android jquery ios


【解决方案1】:

很酷的是,您可以一次使用所有 3 个!

$('.tel').on('tap touchstart click',function( event ) {}

您的另一个选择是在事情开始之前检测您需要收听的事件类型。

var CLICK = (navigator.userAgent.match(/ios|android|ipad/i) ? 'touchstart' : 'click' )

这将检查用户代理是否与移动 UA 匹配,如果匹配,则将 CLICK 分配给 touchstartclick

在你的听众中:

$('.tel').on(CLICK,function( event ) {}

【讨论】:

  • 我正在处理的页面目前已关闭。但我相信我尝试过这个,当我这样做时,该功能运行了两次“点击”和“点击”。但我会再看看这个,以确保我没有误导任何阅读这篇文章的人
  • 您应该能够摆脱 touchstart 并实际点击而不是点击。我相信那已经过时了。或查看我的更新答案以获取其他解决方案。
猜你喜欢
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 2023-01-15
  • 1970-01-01
相关资源
最近更新 更多