これはあなたの質問の最初の部分に答えます。Modernizr を使用してから、appleOS テストを追加してみてください。
Modernizr.addTest('ipad', function () {
return !!navigator.userAgent.match(/iPad/i);
});
Modernizr.addTest('iphone', function () {
return !!navigator.userAgent.match(/iPhone/i);
});
Modernizr.addTest('ipod', function () {
return !!navigator.userAgent.match(/iPod/i);
});
Modernizr.addTest('appleios', function () {
return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone);
});
そこから、iOS の場合はボディにクラスを追加し、iOS 以外のデバイスのみにホバー クラスを適用できます。
理想的には、Modernizr がタッチをサポートしないブラウザーに追加する「notouch」ボディ クラスを使用できますが、私の経験では、デバイスがタッチをサポートしていない場合でも、このクラスを Blackberry ブラウザーに追加しません。違うと思ったら教えて!