同様の質問はたくさんありますが、私が探している特定のケースでは何も見つかりません。
ホバー時に表示され、HoverIntent でアニメーション化されるサブナビゲーションを備えたワードプレス サイトがあります。これは問題なくうまく機能しますが、子ページのいずれかにある場合はサブメニューをアクティブのままにしたいと思います-ただし、他の親アイテムにカーソルを合わせると、そのサブメニューを表示したい-何もない場合元のサブメニューの表示に戻したい。
ここに私のメニューがあります:
<div class="menu-main-navigation-container">
<ul id="menu-main-navigation" class="menu">
<li id="menu-item-90" class="menu-item-90"><a href="http://sitename.com/services/">Services</a>
<ul class="sub-menu">
<li id="menu-item-123" class="menu-item-123"><a href="http://sitename.com/services/design/">Desgign</a></li>
<li id="menu-item-109" class="menu-item-109"><a href="http://sitename.com/services/seo/">SEO</a></li>
<li id="menu-item-110" class="menu-item-110"><a href="http://sitename.com/services/development/">Development</a></li>
</ul>
</li>
<li id="menu-item-89" class="menu-item-89"><a href="http://sitename.com/portfolio/">Portfolio</a>
<ul class="sub-menu">
<li id="menu-item-113" class="menu-item-113"><a href="http://sitename.com/portfolio/web/">Web</a></li>
<li id="menu-item-108" class="menu-item-108"><a href="http://sitename.com/portfolio/print/">Print</a></li>
</ul>
</li>
</ul>
</div>
そして私の現在のjQueryコード:
// hover intent
var config = {
sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)
interval: 10, // number = milliseconds for onMouseOver polling interval
over: doOpen, // function = onMouseOver callback (REQUIRED)
timeout: 500, // number = milliseconds delay before onMouseOut
out: doClose // function = onMouseOut callback (REQUIRED)
};
function doOpen() {
jQuery(this).addClass("hover");
jQuery('ul:first',this).fadeIn();
}
function doClose() {
jQuery(this).removeClass("hover");
jQuery('ul:first',this).fadeOut();
}
jQuery("#menu-main-navigation li").hoverIntent(config);
どんな提案でも大歓迎です!