Jquery - POST,成功回调没有被执行
Jquery - POST, success callback is not getting executed
我正在使用下面的 Jquery 代码将商品添加到购物车。我的意图是在 Ajax 调用成功后更改 "Add to cart" 按钮。但是它没有发生。代码如下 -
jQuery.post('/cart/add.js', {
quantity: 1,
id: variant_id
}, function(data){
var myelem = document.getElementById('red') ;
if (myelem != null){
document.getElementById('red').id = 'normal';
}
$("span").removeClass("hidden-count");
$(".cart-count").text('1');
$("#AddToCartText").text("Added");
$("#AddToCart").css("color","Green");
});
目前,代码正在将商品添加到购物车,但我没有看到预期的元素操作。
操作元素的 jquery 是正确的,因为当我将它从成功回调中删除,并将其放在 AJAX 调用之后(不依赖于 AJAX 调用时),在那如果元素被操纵。
- 我已参考 http://api.jquery.com/jquery.post/ 来验证语法。
- 我已经在 Developer tools (Chrome) 中查看 "Console",那里没有错误消息。
请让我知道哪里出错了。
你试过在回调函数中加入一些console.log
吗?也许代码正在执行,但没有按预期执行。
还要检查 variant_id
的值。
如果成功,您必须将 .done 回调添加到您的函数中,您不喜欢下面的示例。这就是为什么您没有得到所需的 DOM 操作。
$.post( "test.php", { name: "John", time: "2pm" })
.done(function( data ) {
alert( "Data Loaded: " + data );
});
这适用于我的购物车。注意第四个参数。 id 是变体 id:
jQuery.post('/cart/add.js', {id:6028354753}, function(data){
console.log(data);
},'json');
我正在使用下面的 Jquery 代码将商品添加到购物车。我的意图是在 Ajax 调用成功后更改 "Add to cart" 按钮。但是它没有发生。代码如下 -
jQuery.post('/cart/add.js', {
quantity: 1,
id: variant_id
}, function(data){
var myelem = document.getElementById('red') ;
if (myelem != null){
document.getElementById('red').id = 'normal';
}
$("span").removeClass("hidden-count");
$(".cart-count").text('1');
$("#AddToCartText").text("Added");
$("#AddToCart").css("color","Green");
});
目前,代码正在将商品添加到购物车,但我没有看到预期的元素操作。 操作元素的 jquery 是正确的,因为当我将它从成功回调中删除,并将其放在 AJAX 调用之后(不依赖于 AJAX 调用时),在那如果元素被操纵。
- 我已参考 http://api.jquery.com/jquery.post/ 来验证语法。
- 我已经在 Developer tools (Chrome) 中查看 "Console",那里没有错误消息。
请让我知道哪里出错了。
你试过在回调函数中加入一些console.log
吗?也许代码正在执行,但没有按预期执行。
还要检查 variant_id
的值。
如果成功,您必须将 .done 回调添加到您的函数中,您不喜欢下面的示例。这就是为什么您没有得到所需的 DOM 操作。
$.post( "test.php", { name: "John", time: "2pm" })
.done(function( data ) {
alert( "Data Loaded: " + data );
});
这适用于我的购物车。注意第四个参数。 id 是变体 id:
jQuery.post('/cart/add.js', {id:6028354753}, function(data){
console.log(data);
},'json');