2012-04-24 220 views
0
jQuery("#markets_served").hover(function(){ 
    jQuery.data(document.body, "ms_height", jQuery(this).height()); 
    if(jQuery.data(document.body, "ms_height") == 35) { 
     jQuery(this).stop().animate({height:'195px'},{queue:false, duration:800, easing: 'easeOutQuad'}); 
     jQuery("#btn_ms_close").css("display","inline"); 
    } 
}); 

jQuery("#btn_ms_close").hover(function(){ 
    jQuery.data(document.body, "ms_height", jQuery("#markets_served").height()); 
    jQuery("#markets_served").stop().animate({height:'35px'},{queue:false, duration:800, easing: 'easeOutQuad'}); 
    jQuery(this).css("display","none"); 
}); 

悬停出现问题。它不会工作。当鼠标不在悬停时显示的内容上时,它不会悬停。悬停功能

http://uscc.dreamscapesdesigners.net/ - 例如在

+0

你似乎有两个上鼠标悬停在此事件。你可以传递两个函数来悬停(),一个用于on-moue-over,一个用于鼠标悬停 – lynks 2012-04-24 16:38:38

回答

0

或者simplier无数据:

jQuery("#markets_served").hover(function() { 
    jQuery(this).stop().animate({height:'195px'},{queue:false, duration:800, easing: 'easeOutQuad'}); 
    jQuery("#btn_ms_close").css("display","inline"); 
}, function() { 
    jQuery(this).stop().animate({height:'35px'},{queue:false, duration:800, easing: 'easeOutQuad'}); 
    jQuery("#btn_ms_close").css("display","none"); 
}); 
+0

非常好,它工作。非常感谢 – user1354153 2012-04-24 17:13:28

+0

顺便说一句,你可以将数据存储在任何元素的“内部”,而不仅仅存储在document.body中。 'jQuery(“#id”)。data(“key”,“value”)' – VisioN 2012-04-24 17:17:32

1

使用像底部的“室内市场”:

$('#el').hover(function(e) { /* hover; */ }, function(e) { /* unhover */ }); 

这里是documentation

+0

我该怎么做?对不起,我可能会问一些愚蠢的问题。我对jquery – user1354153 2012-04-24 16:39:21

+0

相当陌生,在第一个函数中,当鼠标进入时你应该完成所有这些工作,而在第二个函数中,你正在做的一切都是为了让元素处于状态,然后才受到第一个函数的影响功能。 – devdRew 2012-04-24 16:41:42

0

当鼠标进来你增加div的高度,但你不当鼠标位于div之外时重置它,因此是问题。

你应该做这样的事情:

jQuery("#markets_served").hover(
    function(){ 
     jQuery.data(document.body, "ms_height", jQuery(this).height()); 
     if(jQuery.data(document.body, "ms_height") == 35) { 
      jQuery(this).stop().animate({height:'195px'},{queue:false, duration:800, easing: 'easeOutQuad'}); 
      jQuery("#btn_ms_close").css("display","inline"); 
     } , 
    function(){ 
      jQuery.data(document.body, "ms_height", jQuery("#markets_served").height()); 
      jQuery(this).stop().animate({height:'35px'},{queue:false, duration:800, easing: 'easeOutQuad'}); 
      jQuery("#btn_ms_close").css("display","none"); 
     } 


    }); 
2

看看在hover声明在jQuery的网站。您可以一举指定mouseover和mouseout事件的处理程序。无需计算高度或将另一个处理程序绑定到出现的新div。

$("#markets_served").hover(
    function() { 
    //do this when over 
    }, 
    function() { 
    //do this when out 
    } 
);