1

私は JavaScript と jQuery を初めて使用するので、これは少しばかげた質問かもしれません。申し訳ありません。

モバイル デバイスとデスクトップで正常に動作するサイトを作成しましたが、iDevices と一部の Android デバイスが :hover-selectors を使用して独自のトリックを実行することを発見した後、私の body:hover ベースのモバイル検出は大成功ではありませんでした。ユーザーがモバイル デバイスを使用していないかどうかを検出し、クラス .hover を html 本文に追加し、ホバー効果を css に追加する jQuery スニペットを作成しようとしています。

私のスクリプト部分は次のようになります。

<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 なども含める予定です)

最後から 2 番目の } (if ステートメントの右中括弧) を }) に変更すると、iPhone では動作し始めますが、Firefox では動作しなくなります。

これには大きな問題がありますか、それとも js 構文で何かを台無しにしていますか? そして、これもこの種のことを行う良い方法ですか?純粋なjavascriptでこれを行う方法はありますか?ユーザーはjQueryライブラリ全体をロードする必要がありません.jQueryライブラリは他には使用しないので?

返信ありがとうございます (「あなたは血まみれのばか」で始まるものでも (: ) 私はこれでかなり急いでいます。そうでなければ、あと数時間自分で取得しようとしたでしょう。また、このサイトへの私の最初の投稿、そのため、投稿で他の間違いを犯した場合は修正されてもかまいません.

-ミッコー

4

0 に答える 0