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要素がこのイベントを受け取ることができます。