2

cssを使用して特定の要素にホバー状態を割り当てました。特定のイベントの後、jQueryを使用してそのホバー状態を変更したいと思います。cssファイルで言及した:hoverクラスセレクターを変更したい。関数を使用して実装できることはわかっ.hoverていますが、これは私のアプリケーションには適していないため、使用したくありません。私のアプリケーションでは、このホバー状態の変化は一定期間です。つまり、一定時間後にホバーイベントのバインドを解除する必要があります。しかし、私のアプリには、このバインド解除イベントを呼び出す必要がある多くの条件付きモジュールがあります。私が望まないものをアンバインドするための多くの非効率的な呼び出し。

elem {
  width:10px;
}
elem:hover {
  width:20px;
}

hover状態の幅を言うから変更したい20px to 40px。セレクター.css('width','100px')でこの関数を呼び出す方法のような単純なものを使用したいと思います。:hover

4

3 に答える 3

2

私の知る限り、ホバーイベントでのみホバーに影響を与えることができます:

$('#selector').hover( 
  function() { $(this).css('width','100px'); }, 
  function() { $(this).css('width','10px'); }
});

別の方法として、 addClassremoveClassを使用して、特定の要素に css クラスを動的に割り当てることができます。基本的に、要素に css クラスをホバーさせたい場合は、次のようにします。

$('#selector').addClass('hovered');

そして、要素に通常のクラスを持たせたいと思った:

$('#selector').removeClass('hovered');

これはホバーイベントを実際に置き換えるものではありませんが、このようにしていつでも必要に応じて css クラスを変更できます。

于 2012-06-09T10:55:57.433 に答える
1

elem:hover 定義をオーバーライドする (またはスタイル ノードを head に追加する) 別のスタイルシートをロードして、

elem:hover {
    width: 100px !important;
}

その意味での質問です。

(ただし、ホバーイベントを常にバインドおよびバインド解除することは疑わしいように思えます。この質問を投稿する原因となった動作自体が問題ではないかどうかを検討することをお勧めします。)

于 2012-06-09T11:07:50.423 に答える
0

CSSでホバーセレクターが適用されているjQueryを使用してクラスを追加できます。

例えば

elem {
  width:10px;
}
elem:hover {
  width:20px;
}
elem.jsApplied:hover {
  width:40px;
}
于 2012-06-09T11:27:01.037 に答える