前に話しましょう: まず、現在の要素が element であると仮定して、mouseover イベント にはバブリング特性があります。これは、マウスが他の要素から要素に移動するかどうかに関係なく、それを意味します。要素の子要素から 要素に移動すると、mouseover イベントがトリガーされます。 Mouseenter イベントの場合、このイベントにはバブリング機能がありません。つまり、マウスが要素内を「さまよっている」場合、mouseenter はトリガーされません。具体的な例については、この例を参照し、クリックしてリンクを開いてください。
前提は終わったので、mouseoverを使用してmouseenterを実装する方法を説明します。
まず、jQueryがどのように実装されているかを見てみましょう。jQueryでmouseenterとmouseleaveを実装するコードは次のとおりです:
jQuery.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { delegateType: fix, bindType: fix, handle: function( event ) { var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj; // For mousenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window if ( !related || (related !== target && !jQuery.contains( target, related )) ) { event.type = handleObj.origType; ret = handleObj.handler.apply( this, arguments ); event.type = fix; } return ret; } }; });
以上がjqueryのmouseenterについての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。