coocies устанавливается через раз
Никак не пойму, почему кука через раз устанавливается. При чем установив куку я тут же её запрашиваю - вроде все данные на месте, обновляю страницу - половины нет. Отчего так происходит?
var tocoo = new Object();
//mz - массив артикул-количество
var mz = $.parseJSON($.cookie('astea_b'));
if ( mz!=null ) {
for(var item in mz) {
var value = mz[item];
eval ('tocoo.'+item+'='+value);
}
}
//добавляем в массив новый товар с артикулом art
eval ('tocoo.'+art+'=50');
var jsonText = JSON.stringify(tocoo);
$.cookie( 'astea_b', jsonText);
//манипуляции с кнопкой
$('#'+art).css({'cursor':'default', 'background-position':'right bottom'});
$('#'+art).parent().css({'cursor':'default', 'background-position':'left bottom'});
alert('товар заказан');
//запрашиваю и вывожу в алерт массив
pre($.parseJSON($.cookie('astea_b')))
|
Несколько замечаний по коду.
1. Рекомендуется вместо var tocoo = new Object(); писать var tocoo = {}; Использование литералов, короче и удобнее. 2. eval ('tocoo.'+item+'='+value) Использование eval тут неоправданно. Надо:
for (var item in mz) {
tocoo[item] = mz[item];
}
3.
$('#'+art).css({'cursor':'default', 'background-position':'right bottom'});
$('#'+art).parent().css({'cursor':'default', 'background-position':'left bottom'});
Это дурная практика, поскольку это делается на CSS. Это не работа для Javascript. А что в document.cookie после установки и после обновления страницы? |
Спасибо за замечания!
По поводу глюка - перезагрузил сервер и вроде всё исправилось... Хз, короче. |
| Часовой пояс GMT +3, время: 04:43. |