2

JQueryのドキュメントにあるように、マウスオーバーは1回しか発生しないため、mouseoverからmouseenterに多くの行を変換しました。

http://api.jquery.com/mouseover/

mouseoverポインタが子要素にも移動したときに発生します

mouseenterポインタがバインドされた要素に移動したときにのみ発生します。

イベントでさえhover、mouseoverやmo​​useoutとしてではなく、mouseenterやmo​​useleaveとして機能します。

全部できるのになぜmouseoverイベントがあるのか​​不思議に思いmouseenterます。

私にとってはmouseover、要素上でマウスを動かすと、予期せずに発火します。それは本当に子要素の深さに依存しているようです。

複数回起動する必要があるmouseoverとの良いユースケースはありますか?mouseout

4

2 に答える 2

1

私が知っていることは、mouseover/のユースケースはまったくありませんmouseout。これらのイベントが存在する唯一の理由は、これらのイベントが標準の DOM イベント リストにあるため、ブラウザーによってトリガーされるためです。 mouseenterおよびmouseleaveは標準イベントではありませんが、jQuery 固有の構造です。

イベントがバインドされている要素の子の上や外にマウスを移動したときにイベントをトリガーしたい場合に、ユースケースがあると思います。具体的なことは思いつきませんが、少なくともこの機能は利用可能です。mouseenter/だけmouseleaveが存在する場合、問題に選択の余地はありません。

http://code.jquery.com/jquery-1.9.1.jsから:

jQuery.each({
    mouseenter: "mouseover",
    mouseleave: "mouseout"
}, function( orig, fix ) {
    /* content snipped */

憶測: jQuery の作成者がmouseenterおよび非標準イベントを作成した理由は、 /イベントが機能すると予想されるように (つまり、子孫に関係なく)mouseleaveその動作が機能するためです。mouseovermouseout

于 2013-02-21T20:27:08.420 に答える
-1

イベントにはカーソルの座標が含まれているためです。したがって、ターゲットの下でマウス座標を追跡する必要がある場合は、「mouseover」を使用する必要があります

于 2013-02-21T20:22:54.597 に答える