我在opencart上有个按钮车。我有这样的代码:
/* Ajax Cart */
$('#cart > .heading a').live('click', function() {
$('#cart').addClass('active');
$('#cart').load('index.php?route=module/cart #cart > *');
$('#cart').live('mouseleave', function() {
$(this).removeClass('active');
});
});
在桌面上工作很好,当我点击按钮打开购物车窗口,当我离开鼠标它消失。但在手机上,当我点击时,它会打开购物车窗口,但不会再消失。因此,在手机上,当我点击购物车外的任何地方时,我都想消失。
类似这样的东西(但我知道它不起作用):
$('#cart').live('clickoutside', function() {
$(this).removeClass('active');
});
希望你能理解我。谢谢!
发布于 2018-02-04 14:50:23
这是一个非常常见的问题。你会发现它很容易在下拉菜单上处理。
我现在不能测试代码,但我很确定这会为你工作:
$(document).on("click", function() {
if ($(this).closest("#cart").length === 0) {
$('#cart').removeClass("active");
}
});
让我来解释一下为什么这是可行的。在页面上的每次点击时,检查点击的目标是否在#cart中(即检查是否有任何祖先匹配#cart选择器)。
如果不是,则删除购物车的活动类。这将允许在购物车内单击,而不是关闭它。
这是它的文档。jQuery.closest
https://stackoverflow.com/questions/48609266
复制