我正在使用此功能與framework7可排序列表來保存列表的順序的位置,我可以將它們保存到本地存儲,但我無法讀取它們,我得到這個錯誤:使用本地存儲的可排序列表的功能錯誤
遺漏的類型錯誤:無法讀取的不確定
屬性 'ID' 和其reffering這一行:
if (ls[j] === itemsArr[i].dataset.id) {
這是我的全部功能:
var list = document.getElementById('my-id');
var items = list.children;
var itemsArr = [];
for (var i in items) {
itemsArr.push(items[i]);
}
// localStorage
var ls = JSON.parse(localStorage.getItem('data-user-sort') || '[]');
for (var j = 0; j < ls.length; j++) {
for (i = 0; i < itemsArr.length; ++i) {
if (ls[j] === itemsArr[i].dataset.id) {
list.appendChild(itemsArr[i]);
}
}
}
$('.list-block.sortable').on('sort', function() {
var newIdsOrder = [];
$(this).find('li').each(function(){
newIdsOrder.push($(this).attr('data-id'));
});
localStorage.setItem('data-user-sort', JSON.stringify(newIdsOrder));
});
,在這裏我的html:
<div class="list-block sortable">
<ul id="my-id">
<li data-id="1">
<a href="#" class="item-link item-content">
<div class="item-inner">
<div class="item-title">Item 1</div>
</div>
</a>
<div class="sortable-handler"></div>
</li>
<li data-id="2">
<a href="#" class="item-link item-content">
<div class="item-inner">
<div class="item-title">Item 2</div>
</div>
</a>
<div class="sortable-handler"></div>
</li>
<li data-id="3">
<a href="#" class="item-link item-content">
<div class="item-inner">
<div class="item-title">Item 3</div>
</div>
</a>
<div class="sortable-handler"></div>
</li>
</ul>
</div>
任何幫助嗎?
我在這裏錯過了一些東西,我仍然在你的代碼中出現錯誤。 '不能讀取未定義的屬性'0' – RogerHN
你確定你的代碼中沒有「itemsArr.0」或類似的東西嗎?因爲它看起來像你使用0作爲屬性,而不是索引。 –
我只是將你的代碼添加到函數中,現在它是這樣的:http://pastebin.com/raw/PYSAY7ix – RogerHN