我尝试重新加载弹出购物车数据 这是一个函数
if (!BIS.updateTopCartFromCart) {
BIS.updateTopCartFromCart = {
init: function() {
ajax_block('.top-cart');
ajax_load('.top-cart', '<?=$arResult['AJAX_CALL_ID']?>', $('.top-cart-form').serializeArray());
}
}
}
if (!BIS.updatePopupTopCart) {
BIS.updatePopupTopCart = {
init: function() {
var container = $('#popup-cart-wrapper');
var defUpdatedTopCart = new $.Deferred();
ajax_block('.top-cart');
var ajaxEnded = ajax_load('.top-cart', '<?=$arResult['AJAX_CALL_ID']?>', $('.top-cart-form').serializeArray());
$.when(ajaxEnded).done(function() {
defUpdatedTopCart.resolve();
$.fancybox({
content: container,
afterLoad: function(){
container.html($('.popup')).fadeIn('fast');
container.show();
}
});
});
return defUpdatedTopCart;
}
}
}
</script>
BIS.cartPopup = {
init: function(container) {
var cartPopupLink = $('.buttCart');
var self = this;
}
}
这是cartUpdate函数:
updateCart: function() {
var container = $('#popup-cart-wrapper');
ajax_block('#basket-form');
var ajaxEnded2 = ajax_load('#basket-form', '<?=$arResult['AJAX_CALL_ID']?>', $('#basket-form').serializeArray());
$.when(ajaxEnded2).done(function(){
BIS.cartPopup.init('#popup-cart-wrapper');
BIS.updateTopCartFromCart.init();
BIS.updatePopupTopCart.init();
})
}
ajax返回正确的数据,但我不明白,为什么它不会重新加载弹出数据。 如果我正确理解它必须在done()函数之后执行它,但它没有 我错过了什么 帮助我 最好的reg! 这是ajax_load函数:
function ajax_load (container, ajax_call, params, append) {
if (!$.isArray(params)) {
params = $.queryString(params);
}
$.post(
'/bitrix/tools/ajax.php?ajax_call='+ajax_call,
params,
function (data) {
if (container) {
if (append) {
$(container).append(data);
} else {
$(container).html(data);
}
}
}
);
//return false;
}
答案 0 :(得分:1)
为此:
var ajaxEnded = ajax_load('.top-cart',...);
你必须从你的职能部门回复承诺:
function ajax_load (container, ajax_call, params, append) {
if (!$.isArray(params)) {
params = $.queryString(params);
}
var promise = $.post(
'/bitrix/tools/ajax.php?ajax_call='+ajax_call,
params,
function (data) {
if (container) {
if (append) {
$(container).append(data);
} else {
$(container).html(data);
}
}
}
);
return promise;
}