jQueryを使用してそれを行うことができhover
ます:
$("selector_for_your_ul li").hover(
function() {
$(this).addClass("selected").siblings("li").removeClass("selected");
},
function() {
$(this).removeClass("selected");
}
);
実例
これにより、「選択された」クラスがli
マウスの上にあるクラスに切り替わり、マウスが1つli
を離れて別のクラスに入らない場合は、クラスが削除されます(「選択された」クラスを持つクラスはありません)。それはあなたが望んでいたことだと思いますが、それらの1つが最初に「選択された」クラスをすでに持っていることとは一致しません。
誰かがマウスを上に置いたときに変更したいがli
、マウスが別のマウスを入力せずに離れたときに削除したくないli
場合は、次を使用しますmouseenter
。
$("selector_for_your_ul li").mouseenter(
function() {
$(this).addClass("selected").siblings("li").removeClass("selected");
}
);
実例
さまざまなリファレンスでイベントを検索すると、mouseenter
IE固有であることがわかります。それは本当ですが、jQueryが他のブラウザでそれをエミュレートするほど便利です。
更新:必要に応じて、上記のに変更できsiblings("li")
ますsiblings("li.selected")
。例:
$(this).addClass("selected").siblings("li.selected").removeClass("selected");
それはそれを少し効率的にするかもしれません(すでにそれを持っている何かからクラスを削除しようとしないでください)。これを行うために更新された最初の例(with )を次に示します。これを行うために更新された2番目の例(with )を次に示します。hover
mouseenter
オフトピック:ただし、必要な効果によっては、jQueryと「選択された」クラスではなくCSSを使用して実現できる場合があります。最後にハイライトしたままにするのではなくli
(上記の例)、マウスが実際にその上にあるときにハイライトしたいだけの場合(上記の例)、IE6をサポートする必要がない場合は、CSS疑似クラスを使用してそれを行うことができます:hover
li
mouseenter
:hover
selector_for_your_ul li:hover {
color: red; /* ...or whatever... */
}
実例しかし、繰り返しになりますが、これはホバー効果が必要な場合、およびIE6(要素のみを許可)をサポートする必要がない場合に限ります:hover
。a