1

我是 javascript 和 jQuery 的新手,所以这可能是一个有点愚蠢的问题,对此我很抱歉。

我已经创建了一个在移动设备和桌面上都可以正常运行的网站,但是因为我的 body:hover-based 移动检测在发现 iDevices 和一些 Android 设备使用 :hover-selectors 做自己的伎俩后并没有取得巨大成功我一直在尝试制作一个 jQuery 片段来检测用户是否没有使用任何移动设备,然后将 .hover 类添加到 html 正文,向 css 添加一些悬停效果。

我的脚本部分如下所示:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
     $( document ).ready(function() {
        if(!navigator.userAgent.match(/iPhone/i) || !navigator.userAgent.match(/iPad/i)) {
            $("body").hover(function() {
                $(this).addClass("hover")
            }, function() {
                $(this).removeClass("hover")
            })
        }
    })
</script>

但它不起作用。它适用于我的 windows-firefox,添加类 .hover 并启用悬停效果(如果我从浏览器属性中关闭 js,它会停止工作,所以我发现它真的有效?)但它在 iPhone 中不起作用. (在此工作后,我还将包括 iPod、Android、Windows Phone 等)

如果我将倒数第二个 }(if 语句的右大括号)更改为 })它开始在 iPhone 中工作,但在 Firefox 中停止工作。

这是否有一些更大的问题,或者我只是把 js 语法弄乱了?这也是做这种事情的好方法吗?有没有办法用纯 javascript 做到这一点,这样用户就不必加载整个 jQuery 库,因为我不将它用于其他任何事情?

感谢您的回复(即使是那些以“你该死的白痴”(:)开头的回复,我对此非常着急,否则我会尝试自己再花几个小时。也是我在这个网站上的第一篇文章,所以如果我在帖子中犯了其他错误,我不介意得到纠正。

-米卡

4

0 回答 0