我在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');
});
希望你能理解我。谢谢!
答案 0 :(得分:0)
这是一个非常常见的问题。您可以在下拉菜单中轻松找到它。
我目前无法测试代码,但我确信这对您有用:
$(document).on("click", function() {
if ($(this).closest("#cart").length === 0) {
$('#cart').removeClass("active");
}
});
让我解释为什么会这样。每次点击页面时,检查点击目标是否在#cart内(即检查是否有任何祖先与#cart选择器匹配)。
如果不是,请移除购物车的活动课程。这将允许购物车内的点击而不是关闭它。
这里是它的文档。 jQuery.closest