jQuery并不总是在发布后更新DOM

时间:2011-07-15 03:03:11

标签: jquery dom post

我正在使用jQuery发布数据并使用被调用的PHP函数返回的JSON编码数据更新两个DOM元素。

我遇到的问题是下面代码中的#cart_value和#cart_num_items元素没有在初始帖子上更新 - 如果我第二次或更多次触发帖子,它就可以正常工作和元素更新。

此行为非常一致,如果我导航到包含触发链接的另一个页面,则会发生同样的事情。

如果没有传递函数且没有使用动态添加的(.live)元素,行为也是相同的。

我使用'jQuery'而不是'$'来避免与最终用户可能已经运行的其他库发生任何潜在冲突。

非常感谢任何帮助。

我的代码是:

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;
});

1 个答案:

答案 0 :(得分:0)

尝试引用你的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;
});

此外,model在哪里定义,user_id定义在哪里?