我有以下HTML设置:
<div id="div1">
<div id="content1">blaat</div>
<div id="content1">blaat2</div>
</div>
这段代码的意思是,如果你没有将鼠标悬停在另外两个div之一上,你是无法悬停在div1上的。
现在我在div1上设置了一个mouseout事件。
问题是,当我从content1移动到content2时,div1.mouseout会被触发,因为它们的mouseout事件正在冒泡。
而且,事件的target、currentTarget或relatedTarget属性永远不是div1,因为它从来没有直接被悬停过...
我已经疯狂地搜索了这个问题,但我只能找到与我需要相反的问题的文章和解决方案。这似乎是微不足道的,但我做不到...
当鼠标离开div1时,div1.mouseout应该只被触发一次。
其中一种可能的方法是在鼠标进入和离开时设置一些数据,但我相信这应该可以直接解决,因为这只是一个mouseout事件...
编辑:
bar.mouseleave(function(e) {
if ($(e.currentTarget).attr('id') == bar.attr('id')) {
bar.css('top', '-'+contentOuterHeight+'px');
$('#floatable-bar #floatable-bar-tabs span').removeClass('active');
}
});
将mouseout更改为mouseleave,代码就可以正常工作...