2011-07-15 12 views
0

jQueryを使用してデータをポストし、呼び出されたPHP関数から返されたJSONエンコードデータで2つのDOM要素を更新しています。jQueryが投稿後にDOMを更新するとは限りません

私が抱えている問題は、以下のコードの#cart_valueと#cart_num_items要素が最初の投稿で更新されていないということです。投稿を2回以上トリガーすると、要素が更新されます。

この動作は非常に一貫しており、トリガーリンクを含む別のページに移動すると同じことが起こります。

振舞いは、伝達関数がなく、動的に追加された(.live)要素を使用しない場合も同じです。

エンドユーザーが実行している可能性のある他のライブラリとの潜在的な競合を避けるために、 '$'の代わりに 'jQuery'を使用しています。

ご協力いただきまして誠にありがとうございます。

私のコードは次のとおりです。あなたのJSONのキーを引用

jQuery("a.add_to_cart").live("click", function(){ 
    var product_id = jQuery(this).attr('href'); 
    jQuery("img#product_image_" + product_id).effect("transfer", { to: jQuery("div#cart") }, 600,function(){ 
     jQuery.post(model, { action : "add_item_to_cart", product_id : product_id, user_id : user_id }, function(data){ 
      jQuery("span#cart_value").html(data.value); 
      jQuery("span#cart_num_items").html(data.qty); 
     }, "json"); 
    }); 
    return false; 
}); 

答えて

0

試してみてください。また

jQuery("a.add_to_cart").live("click", function(){ 
    var product_id = jQuery(this).attr('href'); 
    jQuery("img#product_image_" + product_id).effect("transfer", { "to": jQuery("div#cart") }, 600,function(){ 
     jQuery.post(model, { "action" : "add_item_to_cart", "product_id" : product_id, "user_id" : user_id }, function(data){ 
      jQuery("span#cart_value").html(data.value); 
      jQuery("span#cart_num_items").html(data.qty); 
     }, "json"); 
    }); 
    return false; 
}); 

modelが定義されている、とどこuser_idが定義されています?

+0

modelとuser_idは、他の関数でも使用されているため、jQuery階層の上にさらに定義されています。私は火かき棒でポストデータをチェックしたが、正しくポストされている。 – Steve

+0

あなたの提案を試してみました。完璧です。どうもありがとうございました! – Steve

関連する問題