2012-04-24 213 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 
    } 
);