JQuery не всегда обновляет DOM после поста - PullRequest
0 голосов
/ 15 июля 2011

Я использую jQuery для публикации данных и обновления двух элементов DOM с помощью данных в кодировке JSON, возвращаемых вызываемой функцией PHP.

Проблема, с которой я столкнулся, заключается в том, что элементы #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 голосов
/ 15 июля 2011

Попробуйте процитировать ваши ключи 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 ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...