firefox bug mouseenter / mouseleave

时间:2014-05-28 00:20:46

标签: jquery firefox mouseevent

我已经阅读了很多关于鼠标移动事件(输入,离开,封面,外出等)的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。

0 个答案:

没有答案