用'event.stopPropagation'发出隐藏div

时间:2017-07-16 23:43:18

标签: javascript jquery ajax shopify

使用Cart.JS处理Shopify的Ajax购物车。

我隐藏的原始代码显示最初的'ajaxcart'容器:

<script>
  $(document).ready(function(){
    $("lightbox").hide();
    $("ajaxcart").hide();
    $('#button').click(function(event){
        $('lightbox').show().addClass('fadeIn').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', 
        function() {
          $(this).removeClass('fadeIn');
        });
        $('ajaxcart').show().addClass('slideInRight').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', 
        function() {
          $(this).removeClass('slideInRight');
        });
            event.stopPropagation();
    });
    $("#button").on("click", function (event) {
        event.stopPropagation();
    });
    $('html').click(function() {
      $('lightbox').show().addClass('fadeOut').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', 
        function() {
          $(this).removeClass('fadeOut');
            $(this).hide();
        });
        $('ajaxcart').show().addClass('slideOutRight').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', 
        function() {
          $(this).removeClass('slideOutRight');
          $(this).hide();
        });
    });

    $('ajaxcart').click(function(event){
        event.stopPropagation();
    }); 
});
</script>

但是,当使用隐藏部分event.stopPropagation();时,由于停止事件,它会混淆使用购物车按钮的代码。

我创建了一个实时测试,因此您可以看到购物车中的按钮没有响应:https://eldecosmetics.com/pages/bergen

如何在不停止容器和Ajax中的事件的情况下安全地隐藏'ajaxcart'容器的任何想法,并且不使用event.stopPropagation();的最后一部分似乎是问题?

1 个答案:

答案 0 :(得分:0)

在“ajaxcart”外部点击时,不使用$('html').click(function()来隐藏div。我创建了一个新的div,其位置为:absolute;填补'ajaxcart'背后的整个身体区域。然后使用它关闭'ajaxcart'。

$('lightbox').click(function() {
      $('lightbox').show().addClass('fadeOut').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', 
        function() {
          $(this).removeClass('fadeOut');
            $(this).hide();
        });
        $('ajaxcart').show().addClass('slideOutRight').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', 
        function() {
          $(this).removeClass('slideOutRight');
          $(this).hide();
        });
    });