2014-10-18 5 views
0

У меня простая корзина покупок, где пользователь добавляет товары в свою корзину. Каждый добавленный продукт сохраняется как объект в $ .cookie.

Когда пользователь удаляет продукт, этот предмет продукта удаляется из файла cookie или количество падает на один. обновление, что количество объектов работает нормально, я верю.

моя проблема в том, что я не думаю, что им правильно использовать сплайсинг, и я не могу понять, как сделать эту работу в результате. в основном, что происходит, первый объект продукта всегда удаляется из $ .cookie в отличие от этого конкретного объекта, в котором удаляется совпадение.

ниже - мой код. Я надеюсь, что кто-то может определить проблему. я подозреваю, что это «1» (первый элемент), вызывающий проблему >> current_objs.splice (current_objs [i], 1)

вот мой код.

$('body').on('click', '.remove_me', function(e) { 

    var productid = $(this).data('productid'); 

    var current_objs = $.cookie("obj"); 

    for (i = 0; i < current_objs.length; i++) { 

    if (current_objs[i].productid === productid.toString()) { 

     if (current_objs[i].qty == 1) { 

     current_objs.splice(current_objs[i],1);   

     $.cookie("obj",current_objs, { path: '/' }); 

     } else { 

     current_objs[i].qty = current_objs[i].qty - 1; 

     $.cookie("obj",current_objs, { path: '/' }); 
     } 

    } 

    } 

}); 

заблаговременно.

+0

вместо 'current_objs.splice (current_objs [I], 1); 'try' current_objs.splice (i, 1); '. –

ответ

0

Код JavaScript array.splice() имеет следующие параметры:

array.splice(index, howMany, item1, item2, .., itemN) 

Где

  • index это индекс в массиве, чтобы добавить/удалить элементы.
  • howMany - количество элементов, подлежащих удалению.
  • item1-N - это предметы, которые нужно добавить.

Попробуйте вместо этого:

current_objs.splice(i, 1); // remove 1 item and index i 
Смежные вопросы