Javascript jquery悬停并停留直到鼠标离开
我正在尝试创建一个“购物车”链接,其中购物车在悬停时打开。我可以让车在悬停时打开,离开时关闭。然而,我不能让购物车块保持开放,一旦悬停。我希望汽车挡在悬停时打开,如果你在上面悬停,则保持打开。如果你将鼠标悬停在页面右上角的“购物车”链接上,你就会明白我的意思 我使用的jQuery是:Javascript jquery悬停并停留直到鼠标离开,javascript,jquery,hover,Javascript,Jquery,Hover,我正在尝试创建一个“购物车”链接,其中购物车在悬停时打开。我可以让车在悬停时打开,离开时关闭。然而,我不能让购物车块保持开放,一旦悬停。我希望汽车挡在悬停时打开,如果你在上面悬停,则保持打开。如果你将鼠标悬停在页面右上角的“购物车”链接上,你就会明白我的意思 我使用的jQuery是: jQuery('#cart-links .links .first a').mouseover(function(){ jQuery('.block-cart').slideDown(400); }).mou
jQuery('#cart-links .links .first a').mouseover(function(){
jQuery('.block-cart').slideDown(400);
}).mouseout(function(){
jQuery('.block-cart').slideUp(400);
});
jQuery(".block-cart").mouseover(function(){
jQuery(this).show();
}).mouseout(function(){
jQuery(this).fadeOut("slow");
});
您需要取消第一个
mouseout()
,因此需要将第二个部分调整为
jQuery(".block-cart").mouseover(function(){
jQuery(this).stop(true).show();
}).mouseout(function(){
jQuery(this).fadeOut("slow");
});
请注意,
停止
,我传递的是true,因此它将清除当前动画队列。jQuery doc for stop是@它看起来像是.block cart
不是触发悬停的元素的子元素,因此为了保持悬停状态处于活动状态,您必须以.block cart
是触发悬停的元素的子元素的方式构造HTML
顺便说一句:你为什么不使用
$(this).hover()
而不是$(this).mouseover().mouseout()
,它更容易一点实际上,我更喜欢@kongr45gpen的解决方案。它使用.mouseleave()
,.mouseenter()
,并重新排列HTML,以便阻止购物车
位于#购物车链接
内。非常感谢您的帮助。我无法将购物车块作为子html获取,因此我选择了“Detect’s Resosse”,它工作得非常好:)您好,谢谢您的帮助,不幸的是,我在尝试将html作为所需元素的子元素时遇到了很多麻烦。这是因为该网站基于magento购物车软件,很难改变。我想,如果有一种方法可以延迟鼠标移出购物车链接上的悬停,我可能能够初始化块购物车功能的悬停,因此购物车不会消失。这可能吗
hovered = false;
jQuery('#cart-links .links .first a').mouseover(function(){
jQuery('.block-cart').slideDown(400);
}).mouseout(function(){
setTimeout(function(){
if(!hovered) {
jQuery('.block-cart').slideUp(400);
}}, 250);
});
jQuery(".block-cart").mouseover(function(){
hovered = true;
}).mouseout(function(){
hovered = false;
jQuery('#cart-links .links .first a').trigger("mouseout");
});