在JQuery中添加/删除类

时间:2018-02-04 14:41:30

标签: javascript jquery ajax

我在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');
});
希望你能理解我。谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个非常常见的问题。您可以在下拉菜单中轻松找到它。

我目前无法测试代码,但我确信这对您有用:

$(document).on("click", function() {
  if ($(this).closest("#cart").length === 0) {
    $('#cart').removeClass("active");
  }
});

让我解释为什么会这样。每次点击页面时,检查点击目标是否在#cart内(即检查是否有任何祖先与#cart选择器匹配)。

如果不是,请移除购物车的活动课程。这将允许购物车内的点击而不是关闭它。

这里是它的文档。 jQuery.closest