5

html

<a href="home.html">Home</a>

CSS

a {
   color: blue;
}
a:hover {
   color: red;
}

ご覧<a>のとおり、ホバーすると赤色になります。

質問
jQuery 経由でホバーを削除するにはどうすればよいですか?
私は試しました: $('a').unbind('hover');そして$('a').unbind('mouseenter mouseleave')

なぜうまくいかないのだろうと思うようになりましたhover()

4

4 に答える 4

5

アンカータグにバインドされたイベントではなく、疑似クラスにすぎないためa:hover、.hover() イベントのバインドを正常に解除できません。

動作を変更したい場合は、次の 2 つのことを行うことができます。

  1. a:hoverスタイルを削除します

  2. アンカー タグにホバー イベントをバインドし、それに応じて css を設定します。

于 2010-04-22T06:43:16.867 に答える
2

いいえ。これは CSS ルールであり、JavaScript イベントではありません。
色を変更する最も簡単な方法は、より強力な CSS ルールを使用することです。次に例を示します。

a.NoHover:hover {
   color: blue;
}

また

body a:hover {
   color: blue;
}
于 2010-04-22T06:42:50.837 に答える
1

クラスを追加/削除し、それに応じて JQuery を使用できます。したがって、通常の状態とホバー状態の両方のクラスを作成する必要があります。たとえば、次のように要素からスタイルを削除できます。

$('a').mouseover(function(){
  $(this).removeClass();
});

ただし、以下を使用して実際にクラスを追加および削除することをお勧めします。

addClass()
removeClass()

于 2010-04-22T06:43:29.267 に答える
0

あなたがこれについて心配しているその唯一の色が役立つかもしれません。

$('a').each(function() {
   var $this = $(this);
   $this.css('color', $this.css('color'));
 });

要素のstyleプロパティは、CSSセレクターで設定されたプロパティをオーバーライドします。理論はテストされ、正常に機能します。このプラグインは任意のcssプロパティを読み取り、それらを元に戻すため、それらを「固定」します。

$.fn.stickCss = function(props) {
  var stick = (props || '').split(/\s+/);
  return this.each(function() {
    var $this = $(this);
    $.each(stick, function(i, prop) {
      $this.css(prop, $this.css(prop));
    });
  });
};

// example usage:
$('a').stickCss('color background-color margin padding');
于 2010-04-22T07:08:28.243 に答える