我已经阅读了很多关于鼠标移动事件(输入,离开,封面,外出等)的FF错误。但我真的不明白这一点,也不知道如何为我的案例采用解决方案。
我有一个div,代表一个图片拇指。这个想法是,如果这个拇指被鼠标覆盖,它会变暗并且图片一角的一个检查图标变得可见,可以点击以标记该图片被选中。
结构是:
<div class='shadow_block'>
<img class='shadow_pic' src="..."> <!-------picture -->
<div class='shadow_back'></div> <!-------covering dark layer -->
<div class='shadow_select_block' data-clicked="0">
<div class='shadow_select_pic'></div> <!--check icon -->
<div class='shadow_select_back'></div> <!--covering dark layer for the check icon -->
</div>
</div>
以下是我的处理程序:
$('#mydialog').on('mouseenter', '.shadow_block', function(event){
$('.shadow_select_block', this).css('opacity', 1);
$('.shadow_back', this).css('opacity', 0.3);
});
$('#mydialog').on('mouseleave', '.shadow_block', function(event){
if ($(this).find('.shadow_select_block').data('clicked') === 0){
$('.shadow_select_block', this).css('opacity', 0);
$('.shadow_back', this).css('opacity', 0);
}
});
$('#mydialog').on('mouseenter', '.shadow_select_block', function(event){
$('.shadow_select_back', this).css('z-index', '1002');
});
$('#mydialog').on('mouseleave', '.shadow_select_block', function(event){
$('.shadow_select_back', this).css('z-index', '1004');
});
问题是,当我快速移动mouse_block mouseenter和mouseleave fire并且阴影图层和shadow_select_block被显示和隐藏时。 当我慢慢将鼠标移出shadow_block时,只隐藏shadow_select_block,仍然会显示shadow_back(图片上的暗层)。
Chrome没问题......
THX。