我正在建立一个菜单,我需要检测鼠标的下一步动作。目前我正在使用event.relatedTarget
并获取下一个元素的event.relatedTarget.id
。它一直工作,直到我必须在我的菜单上对我的CSS进行一些修改,所以我不得不摆脱overflow: hidden;
并使用display: inline-block;
。现在发生的事情是event.relatedTarget
是一个空字符串,除非我将鼠标快速拉到我的菜单项。生病了部分代码,并在jsfiddle上有完整的东西。任何想法的家伙?
Navigation.top_links.on('mouseleave', function (event) {
var sub_wrapper = $('.sub-wrapper'),
target_id = event.relatedTarget.id;
console.log(event.relatedTarget.id);
console.log(event.relatedTarget.id);
if (target_id == 'got_me_sections' || target_id == 'got_me_products' || target_id == 'ind_sections' || target_id == 'ind_products') {
console.log('mouse down to items');
return false;
}
sub_wrapper.removeClass('sections').removeClass('products');
sub_wrapper.hide();
});
它的HTML很多,所以它有点混乱,抱歉。
<ul id="top_nav">
<li class="first"><a href="#" id="sections" class="nav-link">sections</a></li>
<li><a href="#" id="products" class="nav-link">products</a></li>
<li>
<div id="nav_cart">
<div class="gfx-div-cart"></div>
</div>
</li>
</ul>
<div id="sub_nav">
<div id="sub_sections" class="sub-wrapper">
<div id="got_me_sections" class="top-space">
<div id="ind_sections" class="indicator"></div>
</div>
<div class="nav-items-wrapper">
<div class="nav-items-breadcrumb">
<ul class="breadcrumb">
<li class="bc first">sections</li>
<li class="bc last"> </li>
</ul>
</div>
<div class="nav-items">
<ul class="nav-items-list">
<li><a href="#" class="nav-item">item.Name</a></li>
</ul>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
我通过向<div id="sub_nav">...</div>
我将容器向上移动了一些负margin-top: -4px;