解決策は次のとおりです。
まず、イベントの現在のノード、つまり jquery の currentTarget がターゲット、つまり次の拡張子 $.containsNode に含まれているかどうかを判断します。
次に、hover が呼び出されたときのマウスオーバーイベントとマウスアウトイベントで、currentTarget がターゲット、つまり $.fn.fhover 拡張子に含まれるかどうかを判断します。
以下は関連するコードです。
$.containsNode = function(parentNode, childNode) {
if (parentNode.contains) {
returnparentNode != childNode &&parentNode.contains(childNode);
} else {
return !!(parentNode.compareDocumentPosition(childNode) & 16); >}
}
$ .fn.fhover = function(over, out) {
this.hover(function(e) {
if ($.containsNode(e.target, e.currentTarget )) {
return;
}
over.call(this, e);
}, function(e) {
if ($.containsNode(e.target, e.currentTarget) )) {
return;
}
out.call(this, e)
});