最近、オンライン検索の量が解明に役立たないように見えるという問題に遭遇しました。特に、jQuery hoverIntentプラグインを使用すると、最初の「hoverIn」関数が正しく呼び出されますが、「hoverOut」は適用されません。
簡単な背景として、これを順序付けられていないリストから作成されたメニューで使用しています。jQueryの.slideDown()エフェクトは「hoverIn」で使用され、.slideUp()は「hoverOut」関数で使用されます。最初の.slideDown()は機能しますが、カーソルが領域を離れると、.slideUp()が適用される代わりに、要素が即座に消えます。同様に、後続のマウスオーバー/マウスアウトイベントは「hoverIn」または「hoverOut」関数をトリガーしません。最初の「hoverIn」関数を適用するには、ページを完全に更新する必要があります。
.fadeIn()、. fadeOut()、. show()、animate()など、さまざまなjQueryアニメーション効果を試しましたが、すべて成功しませんでした。私も過去に何度もこの問題に遭遇しました、そして私はおそらくそれを引き起こしているのではないかと思っています。
これが私が使用しているhoverIntentコードです:
var ddMainMenuConfig = {
over: revealMainMenuChildren, // function = onMouseOver callback (REQUIRED)
timeout: 700, // number = milliseconds delay before onMouseOut
out: hideMainMenuChildren
};
function revealMainMenuChildren(){ $(this).find("ul").filter(":first").stop().slideDown(300); }
function hideMainMenuChildren(){ $(this).find("ul").filter(":first").stop().slideUp(500); }
$("#menu ul ul").parent().addClass("ddarrow").append("<span class=\"childIndicator\"></span>");
$("#menu ul ul").css({display: "none"}); // Opera Fix
$("#menu ul li").hoverIntent(ddMainMenuConfig);
これが行われているテストページを見たい場合に備えて、ここにリンクがあります:
http://test.nimblehost.com/dexture/
なぜこれが起こっているのか、そしてそれを修正する方法についての提案をいただければ幸いです。GoogleCDN経由で提供されるjQueryv1.7.xとhoverIntentのr6を使用しています。