ajax完成()函数后重新加载数据
data reload after ajax done() function
我尝试重新加载弹出购物车数据这是一个函数
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()函数之后,但它没有我错过了什么帮我打个招呼最好的regards!这里是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;
}
要做到这一点:
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;
}
相关文章:
- 正在等待呈现图表,直到加载数据为止
- ng绑定和ng href问题.ng href未从控制器加载数据
- 单击按钮时加载数据
- 在reactjs组件中预加载数据
- Highcharts可以从服务器加载数据,但不能更新
- AngularJS promise在加载数据之前得到解决
- 在Knockout JS中搜索从DB加载数据的项目
- 如何在angular js中使用$emit后重新加载数据
- 构建多个图表时,HighCharts加载数据的速度较慢
- 加载初始网站后在后台加载数据
- ExtJS网格未从Ext.data.XmlStore加载数据
- 数据表 AJAX 筛选器重新加载数据
- select2 使用 AJAX 加载数据不能选择任何选项
- 在 Metro 风格应用中启动时加载数据
- 需要帮助使用 AJAX 和其他一些东西加载数据
- Vue 不加载数据
- 向右滚动加载数据
- 为SEO的数据绑定JS预加载数据
- mysql循环-预加载数据
- 无法使用JSON加载数据表