0

我尝试制作弹出式购物车,它显示不正确,首先是显示弹出式,然后更新购物车我错过了什么?

我试过这个

<script>
    BIS.cartPopup = {
            init: function(container) {
                var cartPopupLink = $('.buttCart');
                var self = this;

                container.hide();

                cartPopupLink.on('click', function(e) {
                    e.preventDefault();
                    $.fancybox({
                        content: container,
                        afterLoad: function() {
                            container.show();
                        }
                    });
                })
            }
    }
        $(function() {
            BIS.cartPopup.init($('#popup-cart-wrapper'));
        })
</script>

这是一个html

<div class="popup__overlay" id="popup-cart-wrapper">
    <div class="popup">
//cart inside
</div>

这是购物车更新代码:

<script>
    if (!BIS.updateTopCart) {

        BIS.updateTopCart = {
            init: function() {
                ajax_block('.top-cart');
                ajax_load('.top-cart', '<?=$arResult['AJAX_CALL_ID']?>', $('.top-cart-form').serializeArray());
            }

        }
    }
</script>
4

1 回答 1

0

您可能需要移动此 AJAX 代码:

$(function() {
    BIS.cartPopup.init($('#popup-cart-wrapper'));
})

到 AJAX 回调,它在购物车更新后执行:

BIS.updateTopCart = {
    init: function() {
        ajax_block('.top-cart');
        ajax_load('.top-cart', '<?=$arResult['AJAX_CALL_ID']?>', $('.top-cart-form').serializeArray());
        $(function() {
            BIS.cartPopup.init($('#popup-cart-wrapper'));
        })
    }
}
于 2015-06-17T08:06:20.590 回答