あなたの状況をどのように理解できるかに基づいて、明確にする必要があるいくつかのこと:
(1)は実際には 2 つです。通常、指定 した要素に.hover()
アクセスするときに実行する関数コールバックと、. 1 つだけを指定すると、両方に対して同じように実行されます。mouseover
mouseout
$(element).hover(
function () {
// to execute on mouseover
},
function () {
// to execute on mouseout
}
);
(2)イベント ハンドラ内で、イベントが発生したと思われる要素が によって参照されthis
ます。ほとんどの場合、要素を再度選択する必要は事実上ありません。
$('#LeftArrow_Wrapper, #RightArrow_Wrapper').hover(function () {
$(this).stop(true, true).show();
});
(3) アニメーション.stop()
を停止します。単独で呼び出しても要素の jQuery アニメーションはトリガーされませんが (瞬間的であるため)、たとえば を呼び出すとトリガーされます。jQuery は一定期間にわたってフェード + サイズを実行するためです。.show()
.show(duration)
だから何?
全体として、元のコードで起こっていることは、要素にマウスを合わせると、 (元の(2)のため)との両方 が表示されますが、マウスを外したときにも同じことが行われるということです。((1)を参照)に対してコールバックを 1 つしか提供しないためです。#LeftArrow_Wrapper
#RightArrow_Wrapper
.hover()
停止するアニメーションがないため、への呼び出し.stop()
が役に立たないことは役に立ちません (このコードの外側で何か他のことが起こっていない限り --- への呼び出しを停止することはほとんどありません.show()
)。
あなたの質問は最も詳細ではないので、あなたがやりたいと思うことは次のようなものです:
$('#LeftArrow_Wrapper, #RightArrow_Wrapper').hover(
function () {
$(this).show();
},
function () {
$(this).hide();
},
);