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 :(得分:2)
查看jQuery站点上的hover声明。您可以一次性为mouseover和mouseout事件指定处理程序。无需计算高度或将另一个处理程序绑定到出现的新div。
$("#markets_served").hover(
function () {
//do this when over
},
function () {
//do this when out
}
);
答案 1 :(得分:1)
答案 2 :(得分: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");
}
});
答案 3 :(得分:0)
或者没有数据的简化:
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");
});