javascript - 如何防止我的触摸设备执行::hover 而不是点击功能?

标签 javascript android jquery ios css

好吧,这可能是一个常见问题,但我目前还没有找到解决方案。

我的网站上有一个磁贴,实际上是一个 div 容器,如果我在触摸设备上单击它,我想在其中添加一个“触摸”类。

除了在第一次点击时一切正常,它不执行我的点击功能,而是执行::hover。第一次点击后,一切都按预期进行。

这是一些代码

function init() {
        $tile.on('click', toggleTouchClass );
    }

function toggleTouchClass(){

        if( $('html').hasClass('isTouch') ){
            $tile.toggleClass('touched');
        } else{
            return
        }
    }

当然,当文档准备好时会调用 init。

提前致谢。

最佳答案

您应该在触摸设备上订阅 touchstart 事件:

var isTouchDevice = ... // You can check ontouchstart in window object or use Modernizr.touch to set this
$tile.on(isTouchDevice ? 'touchstart' : 'click', function() {
    ...
});

关于javascript - 如何防止我的触摸设备执行::hover 而不是点击功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33627596/

相关文章:

javascript - 从二分查找函数返回值

javascript - 让文本输入在 ReactJS 中工作

javascript - 如何有效地将网络流缓冲到 JavaScript 中的文件中?

android - 在 Cloud Firestore 中如何创建一个只创建一次的安全规则

JQuery完整日历,如何更改 View

javascript - 解析 xml 现在给我一个错误

javascript - 如何通过 Javascript 停用部分 html 代码

android - 在真实的安卓设备上模拟低内存

javascript - 将两个排序图标添加到数据表列?

android - 使用声音进行运动检测