アイテムを削除しようとする前に、アイテムがlocalStorageにあるかどうかを確認できますか?
if (item in localStorage) localStorage.removeItem(item);
ブラウザでlocalStorageが使用されていることを確認したとしますか?
EDIT
動的IDを使用できます。これにより、doneItem
で始まるすべてのa
要素に一致し、最後にindex
変数に番号が取得されます。
$("a[id^=doneItem]").click(function(){
var index = $(this).attr("id").replace("doneItem", "");
var item = 'personal' + index;
localStorage.removeItem(item);
window.location.reload(true);
});
また、この行を変更し、そこi
を挿入する必要があります:
document.write("<a data-role=\"button\" id=\"doneItem" + i + "\" data-transition=\"none\" href=\"#showPersonal\" data-icon=\"check\" data-iconpos=\"left\">Done</a>");
あなたもModernizrコードをコメントアウトする場合にのみ動作します。ここではlocalstorage変数を置き換えていますが、なぜそうするのか分かりません。これらの問題はjsfiddleであるかもしれない
/*
if (Modernizr.localstorage) {
var localStorage = window.storage;
} else {
alert('Your browser does not support local storage!');
}
*/
ので、私はいくつかのより多くのコードを削除する必要がありましたが、ここでは、やや作業例です:http://jsfiddle.net/zr4tg/53/
あなたが望むようにそれは見えないかもしれませんが、それは動作するはず。私に教えてください=)
''personal' + index'の項目はすべてlocalStorageにありますか? – Niklas
あなたがあなたが望んでいた項目を取得していることを警告するとき?何が起こるかを見るためにあなたのアイテム変数だけ(「個人」+インデックス)を置き換えようとしましたか?ニクラスもとても良い点があります。 .each()を実行していてlocalStorageにないものが見つかった場合は、そのエラーも表示されます。見つかったものは削除されますが、それが届かない場合はエラーが表示されます。 –
私は置き換えようとしましたが、同じ結果が得られました。そして警告は、これが正しい結果であることを確認することです。コンソール:78event.layerXとevent.layerYは壊れており、WebKitでは廃止予定です。 script.js:33Uncaught TypeError:未定義のメソッド 'removeItem'を呼び出せません – fre2ak