作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些像这样的 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
});
关于javascript - 所有设备中的点击事件都会检测到触摸设备中的触摸吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58683736/
我是一名优秀的程序员,十分优秀!