посмотрите на это: http://jsfiddle.net/Rh4Au/6/ хорошо работает ..
строка 30:
+ "<div class='checkbox'><input type='checkbox' class='test' id='status-" +
i
+ "'></div>"
i
изменено на j
, потому что i - это длина, а j - итератор.
вставка после строки 34:
var tempasd = orderList[j].split("-")[1];
if(localStorage.getItem("status-"+tempasd) == "true") {
$("#status-"+j).get(0).checked = true
}
else {
$("#status-"+j).get(0).checked = false
}
}
Код загружает данные из localStorage
и ставит галочку в галочках.
tempasd
- это временная переменная, хранящая текущий номер ID флажка (поскольку они не всегда идут по возрастанию.
изменяется со строки 99 на 117:
// ON STATUS CLICK
console.log('i=',i,' j=',j, 'k=',k);
$itemList.delegate("#status-" + i, 'click', function(e) { // ON CLICK
var $this = $(this);
var parentId = $this.attr('id');
if ($this.is(":checked")) {
console.log('set ', parentId, 'to foo');
localStorage.setItem(parentId, 'foo');
// localStorage.setItem("'" + parentId + "'".val("fdgsdagf"));
// localStorage.setItem($this.parent().attr('checked', true));
// window.location = "http://mail.aol.com"
}
});
до
// ON STATUS CLICK
console.log('i=',i,' j=',j, 'k=',k);
var tempxx;
for(tempxx = 0;tempxx < j; tempxx++) {
$itemList.delegate("#status-" + tempxx, 'click', function(e) { // ON CLICK
var $this = $(this);
var parentId = $this.parent().parent().attr('id').split("-")[1];
console.log('set ', parentId, 'to foo');
localStorage.setItem("status-"+parentId, $this.is(":checked"));
// localStorage.setItem("'" + parentId + "'".val("fdgsdagf"));
// localStorage.setItem($this.parent().attr('checked', true));
// window.location = "http://mail.aol.com"
});
}
мне нужен цикл, потому что он должен делегировать событие каждому флажку, а также событие должно установить localStorage
в false
, когда оно не проверено.
кстати .parent().parent()
теперь не нужно, потому что я исправил в строке 30.