6

次のコードはjQuery1.8でエラーunsupported pseudo: hoverを発生させますが、jQuery1.7.2では完全に機能します。

if(!$(this).parent().find('ul').first().is(':hover')) {
   $(this).parent().parent().removeClass('open');
}

誰かが何が起こっているのか知っていますか?

4

3 に答える 3

8

残念ながら、私たちのコードが将来の証明であることを願っていますが、あなたの$('foo').on( 'hover, ... function(){ //do stuff }コードはjQuery 1.8 で廃止されました。良いニュースがあればいいのですが、jQuery 1.8 のコアの変更により、コードが壊れています。構文を使用する必要があります

$('.selector').on( 'mouseenter mouseleave', function() {
      $(this).toggleClass('hover');
   }
);

if(!$(this).parent().find('ul').first().hasClass('hover')) {
   $(this).parent().parent().removeClass('open');
}

より良いニュースがあればいいのですが、非推奨が発生します:/ ... jQuery 1.8はあなたのショートカットが好きではなく、hoverイベントハンドラーからのイベントハンドラー.on()と疑似セレクターを非推奨にした:hoverため、そのように使用することはできませんもっと。

于 2012-09-20T17:26:44.043 に答える
4

古い質問ですが、グーグルの場合:

これを回避するには、逆の方法を使用します。

$(":focus, :active").filter($(".your-element"));

…jQuery オブジェクトも受け入れるため、これは疑似オブジェクトを持ち、クラスも持つすべての要素と.filter()一致します。:focus:active.your-element

つまり、.your-elementホバーまたはアクティブでない場合、この選択はどの要素とも一致しません。

于 2015-09-14T19:30:54.003 に答える