人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Clickが一度しか反応しないJavascript
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);

}
});

●質問者: goodbabies
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Cherenkov
●100ポイント ベストアンサー

まずnativeJSONとobjectの部分を整理してから。エラーメッセージはありませんか?
HTML部分を推理するのは手間なのでコピペするだけで動作確認ができるモデルを書いてから質問したほうが早く解決すると思います。
https://gist.github.com/
http://jsfiddle.net/
を活用するのがおすすめです。

多分新たに追加される .disp にclickイベントがbindされてないからでは。

$(".disp").click(disp);
↓
$(".disp").live('click', disp);

にしてみるとか。


Cherenkovさんのコメント
>|javascript| $("#main_box").append(function () { var nativeJSON = localStorage.getItem('strage'); ||< この部分は保存されていない場合が考慮されていないので不具合になりそう

a-kuma3さんのコメント
ちぇ、出遅れた。 http://stacktrace.jp/jquery/api/events/live.html jQuery のバージョンにもよりますけど、.delegate() とか .on() というのもあります。

goodbabiesさんのコメント
live() ですか、ありがとうございます。参考になりました。 使っているjQueryは最新使うようにしているのでたぶん大丈夫です。 まだまだbindなど、理解できていません。よく勉強したいと思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ