在悬停时显示div后,如果除了该div之外的任何地方,则隐藏它

时间:2013-03-11 14:28:51

标签: javascript jquery hover

我希望div(.modal)在鼠标输出时消失,但前提是悬停不在.modal或.tooltip类上。

我的代码:

    jQuery('html').hover(function() {
        jQuery('.modal').fadeOut('fast');
    });        
    jQuery('.tooltip, .modal').hover(function(event){  
        var toolTipId = jQuery(this).attr('id'); 
            modal = jQuery(this).parent().next().find('.'+toolTipId+'');          
        if(!modal.is(":visible")) {
            modal.stop().fadeIn('fast');
        }
        event.stopPropagation();
    });

如果使用点击而不是悬停,这非常有效。我怎样才能使其适应悬停?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

jQuery('.tooltip, .modal').mouseenter(function(event){  
    //not sure what your modal variable is in your original code but it looks as if it is just the object you are hovering as you use it's id to get it in again so I replaced it with jQuery(this)
    if(!jQuery(this).is(":visible")) {
        jQuery(this).stop().fadeIn('fast');
    }
    event.stopPropagation();
});

jQuery('.tooltip, .modal').mouseleave(function() {
    jQuery(this).stop().fadeOut('fast');
});