2015-12-29 49 views
0

我正在使用下面的JQuery代碼添加項目到購物車。我的意圖是在Ajax調用成功後更改「添加到購物車」按鈕。然而它沒有發生。代碼如下 -Jquery - POST,成功回調沒有得到執行

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調用)時,那麼元素就會被操縱。

  1. 我已經提到http://api.jquery.com/jquery.post/來驗證語法。
  2. 我在開發人員工具(Chrome)中選中了「控制檯」,那裏沒有錯誤消息。

請讓我知道,我在哪裏犯錯。

+0

檢查網絡選項卡瀏覽器控制檯,並確保您的請求被正確地張貼... –

+0

@Guruprasad,我檢查網絡選項卡爲好。我從服務器獲得有效的回覆。 –

+0

你能否提供一些額外的信息,例如頁面的html?既然你想操縱那些有用的DOM。 –

回答

2

這可以在我的購物車中使用。注意第四個參數。 id是變種ID:

jQuery.post('/cart/add.js', {id:6028354753}, function(data){ 
    console.log(data); 
},'json'); 
+0

感謝它的工作。不過,我有問題,在Jquery文檔中,它說第四個參數不是必需的。顯然是這樣。有沒有關於shopify的任何文檔,我可以參考哪些列出了所需的參數。 –

+0

第4個參數是必需的,因爲在這種情況下,jQuery將Shopify的響應解釋爲html而不是JSON – bknights

0

您是否試圖在回調函數中放置一些console.log?也許代碼正在執行,但沒有做到應有的。

檢查variant_id的值。

+0

我嘗試過使用console.log和Alert。我也沒有得到日誌消息和警報。 –

0

如果成功,您必須將.done回調添加到您的函數中,而您不喜歡下面的示例。這就是爲什麼你沒有得到所需的DOM操作。

$.post("test.php", { name: "John", time: "2pm" }) 
    .done(function(data) { 
    alert("Data Loaded: " + data); 
}); 
+0

甚至添加.done不起作用。而且,jquery文檔並沒有說明.done是必需的。下面是Jquery站點的示例 - $ .post(「test.php」,function(data){ alert(「Data Loaded:」+ data); }); –