jQuery .mouseover()
と.hover()
関数の違いは何ですか?それらが完全に同じである場合、jQueryが両方を使用するのはなぜですか?
jQuery .mouseover()
と.hover()
関数の違いは何ですか?それらが完全に同じである場合、jQueryが両方を使用するのはなぜですか?
回答:
.mouseover()
.hover()
1つまたは2つのハンドラーを一致した要素にバインドし、マウスポインターが入ったときに実行されるようにします
及び葉要素。
呼び出し$(selector).hover(handlerIn, handlerOut)
は以下の略記です:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
マウスが要素に入ったときに発生するイベントハンドラーをバインドするか、要素でそのハンドラーをトリガーします。
mouseover
ポインターが子要素に移動したときにも発生し、ポインターがmouseenter
バインドされた要素に移動したときにのみ発生します。
このため、.mouseover()
あるではないと同じ.hover()
同じ理由で、.mouseover()
あるではないと同じ.mouseenter()
。
$('selector').mouseover(over_function) // may fire multiple times
// enter and exit functions only called once per element per entry and exit
$('selector').hover(enter_function, exit_function)
.hover()
functionは、mouseenter
イベント用とイベント用の2つの関数引数を受け入れますmouseleave
。
jQueryのドキュメントページでhttp://api.jquery.com/mouseover/を試すことができます。これはとてもわかりやすいインタラクティブなデモで、とてもわかりやすく、実際に見ることができます。
つまり、要素の上にマウスオーバーイベントが発生すると、その要素上で子または親要素から発生しますが、マウス入力イベントは、マウスが親要素から要素に移動したときにのみ発生します。
公式ドキュメントから:(http://api.jquery.com/hover/)
.hover()メソッドは、mouseenterイベントとmouseleaveイベントの両方のハンドラーをバインドします。これを使用して、マウスが要素内にある間に要素に動作を適用することができます。
あなたがhttp://api.jquery.com/mouseenter/で読むことができるように
mouseenter JavaScriptイベントはInternet Explorer独自のものです。イベントの一般的なユーティリティのため、jQueryはこのイベントをシミュレートして、ブラウザーに関係なく使用できるようにします。このイベントは、マウスポインターが要素に入ると要素に送信されます。すべてのHTML要素がこのイベントを受け取ることができます。