是否在所有设备中都通过点击事件检测到触摸设备中的触摸?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否在所有设备中都通过点击事件检测到触摸设备中的触摸?相关的知识,希望对你有一定的参考价值。
我有一些类似这样的jQuery代码
$(this).click(function() {
//code
});
[我想知道它是否也可以在触摸设备上运行(以点击笔记本电脑中的事件的方式响应触摸事件,所以我在Firefox开发人员工具中使用触摸模拟对其进行了测试,并且确实可以。
我认为这可能是因为所有触摸设备都将触摸事件视为单击事件,所以我对此进行了搜索,结果发现我的假设是错误的,因为触摸是javascript中的单独事件。有ontouchstart和ontouchend,但某些浏览器不支持它们。尽管我仍然找到这样的代码。
$(this).on("click touchstart",function() {
//code
});
那么为什么它可以与触摸仿真一起使用?只能在某些触摸设备上以这种方式工作吗?那么,无论哪种浏览器,只要单击一下即可使我的代码在所有设备上都能正常工作,那么我最终的解决方案是什么?
答案
您可以使用此功能分别检测click
和touchstart
事件。
var clickEvent = (function() {
if ('ontouchstart' in document.documentElement === true)
return 'touchstart';
else
return 'click';
})();
$(this).on(clickEvent,function() {
//code
});
以上是关于是否在所有设备中都通过点击事件检测到触摸设备中的触摸?的主要内容,如果未能解决你的问题,请参考以下文章