Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JQuery, each и ajax 
V
    Опции темы
Black_leopard
Дата 19.7.2011, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 18.10.2006

Репутация: нет
Всего: нет



Приветствую!

Столкнулся со следующей проблемой:

У меня есть таблица-прайс (содержит список товаров, цен, ввода нужного количества и сумма) с возможностью добавления в корзину (добавление в корзину происходит с помощью ajax): 

user posted image

До нажатия на кнопку "В корзина" (до обработки AJAX), сумма по строчкам при увеличении/уменьшении количества товара работает отлично, а вот после обработки AJAX (выводит в результате точно такую же таблицу только с расстановкой надписи - есть ли в корзине или нет), не работает.



Использую такой код:
Код


//вывод таблицы с помощью AJAX
$("a[href*=ADD2BASKET]").live('click', function() {
       var get = $("#catalog-elemen-attributes form").serialize();
    $.ajax({
        async: true,
        type: "GET",
        url: "/includes/ajax/basket.add.php?"+get,
        data: "",
        beforeSend: function() {
        
        },
        success: function(msg) {
            $("#catalog-elemen-attributes").html(msg);
        }
    })
});

//при увеличении/уменьшении количества
$("div.ui-spinner .ui-spinner-down, div.ui-spinner .ui-spinner-up").live('click', function() {
        var total_price_attributes = 0;
    $("#catalog-element-attributes table.size tr.offer").each(function() {
        var count = parseInt($(this).find("input.spinner").val());
        if (isNaN(count)) count = 0;
        
        var price = 0;
        price = $(this).find("td.price1").html();
        price = price.split(" ").join("");
        price = parseInt(price);
        
        total_price_attributes += price*count;
        var total_price = "<span>"+number_format(price*count, 0, ".", " ")+"</span>" + " руб.";
        $(this).find("td.price2").html(total_price);
    })
    total_price_attributes = "ИТОГО: <span>"+number_format(total_price_attributes, 0, ".", " ")+"</span>" + " руб.";
    $("#catalog-element-attributes div.summ").html(total_price_attributes);
});



складывается ощущение что не может пройтись по $("#catalog-element-attributes table.size tr.offer"), т.е. не видит их в DOM. 
Для событий есть функция отслеживания live, есть ли что-то подобное для each или добавлять результат надо не через html()? 

Подскажите, пожалуйста, уже весь инет облазит, что-то не могу найти решения.


Это сообщение отредактировал(а) Black_leopard - 19.7.2011, 11:49
PM MAIL   Вверх
нуп
Дата 19.7.2011, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 8
Всего: 33



После добавления html через firebug посмотрите есть ли такие объекты $("#catalog-element-attributes table.size tr.offer")
PM MAIL   Вверх
Black_leopard
Дата 19.7.2011, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 18.10.2006

Репутация: нет
Всего: нет



Вот это да!

Действительно забыл дописать класс offer на tr.

Огромное спасибо smile Думаю еще сутки бы бился с проблемой, только потом возможно стал смотреть на структуру. 

Это сообщение отредактировал(а) Black_leopard - 19.7.2011, 12:13
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0392 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.