【发布时间】:2023-03-25 14:45:01
【问题描述】:
当悬停在“shopping_button”上时,我有以下 jquery 打开和关闭 div“shopping_cart”
$('#shopping_button, .shopping_cart').on('mouseenter',function(){
$(this).css('z-index','300');
$(this).css('visibility','visible');
})
$('#shopping_button, .shopping_cart').on('mouseleave',function(){
$(this).css('z-index','189');
$(this).css('visibility','hidden');
$(this).css('opacity','0');
});
需要帮助我想要实现的是“shopping_cart”在 mouseleave 上保持打开状态,并且只有在“shopping_cart”div 外部单击时才会关闭,或者可以在“shopping_cart”div 内添加关闭按钮来关闭它。
谢谢大家。
已编辑
我在上面的代码中添加了以下内容
$('html').click(function () {
$('.shopping_cart').css('visibility','hidden');
});
它完成了这项工作,仅在单击“shopping_cart”div 外部时关闭窗口,但现在如果再次将鼠标悬停在“shopping_button”上,它不会打开“shopping_cart”div,在检查元素上显示
$('#shopping_button, .shopping_cart').on('mouseenter',function(){
$(this).css('z-index','300');
$(this).css('visibility','visible'); <---This Remain Hidden
})
有什么建议吗?
排序
将此添加到 mouseenter 函数中
$('.shopping_cart').css('visibility','visible');
还有 vollhhaaaa....:D
如果有人有的话,仍在寻找更干净的解决方案....
感谢大家的帮助。
【问题讨论】:
-
当然
.shopping_cart仍然是隐藏的,因为您将鼠标移到#shopping_button上,所以在您的函数中使用$(this)您只是设置该按钮的可见性,而不是您的购物车元素.所以重写你的函数来专门设置后者的可见性。 -
感谢您为我指明正确的方向
标签: javascript jquery html css