window.confirm→trueとなった後、2回目以降が発動しません。何がダメなのでしょうか?
$(function(){
$("#main_box").append(function(){
var nativeJSON = localStorage.getItem('strage');
//JavaScriptオブジェクトに変換
var object = JSON.parse(nativeJSON);
var html = "データ一覧:<BR>";
for(var idx=0; idx < object.items.length; idx++) {
html = html + object.items[idx].name + "<span class='disp'>削除</span><BR>";
}
$("#strage").append(html);
});
var disp = function disp(){
if(window.confirm('削除OK?')){
var nativeJSON = localStorage.getItem('strage');
var object = JSON.parse(nativeJSON);
var object = localStorage.getItem('strage') ? JSON.parse(localStorage.getItem('strage')) : { items: []};
object.modified = "2012/05/23 Wed";
var index = $(".disp").index(this);
object.items.splice(index,1);
console.log(object);
nativeJSON = JSON.stringify(object);
// ローカルストレージ保存
localStorage.setItem('strage', nativeJSON);
var html = "最終更新:" + object.modified + "<BR>";
for(var idx=0; idx < object.items.length; idx++) {
html = html + object.items[idx].name + "<span class='disp'>削除</span><BR>";
}
$("#strage").empty();
$("#strage").append(html);
}
}
//問題はここ。
$(".disp").click(disp);
}
});
まずnativeJSONとobjectの部分を整理してから。エラーメッセージはありませんか?
HTML部分を推理するのは手間なのでコピペするだけで動作確認ができるモデルを書いてから質問したほうが早く解決すると思います。
https://gist.github.com/
http://jsfiddle.net/
を活用するのがおすすめです。
多分新たに追加される .disp にclickイベントがbindされてないからでは。
$(".disp").click(disp); ↓ $(".disp").live('click', disp);
にしてみるとか。