9ページ目が唐突すぎるので間を開けたが良いと指摘を受けるエロ漫画か
日付 | 2024-01-11T15:24:00 |
分類 | エロ漫画 |
画像 | 24枚 |
訪問数 |
今日は別サイトでお気に入り機能を実装していたところ、とあるエラーに頭を抱えた。
- localStorageのBookmarkというItemに5件の記事がJSON型データで入っている。
- 新しい記事を1件追加し、localStorageには6件になる。
- ブラウザで戻る
- 戻り先の、既にBookmark済みの記事を、Bookmark解除ボタンを押す。
- するとlocalStorageには4件になる。
なぜならlocalStorageには確かに戻った時点で6件だが、JavaScriptの変数は保持されてしまうため、戻った時、JavaScriptのBookmarkという変数には5件の状態になるのだ。
そこで1件削除すると5件が4件になり、その4件のデータをセットしてしまうため、一気に2件削除されてしまうのだ。
解決方法は至って簡単で変数の宣言を、ボタンクリック時にすればよいだけだ。
大雑把に解説
const tinpo = JSON.parse(localStorage.getItem('bookmark') || JSON.stringify("{}"));
bookmark.onclick = x => {
tinpo[key] = manko;
localSrotage.setItem('bookmark', JSON.stringify(tinpo));
}
bookmark.onclick = x => {
tinpo[key] = manko;
localSrotage.setItem('bookmark', JSON.stringify(tinpo));
}
修正後
bookmark.onclick = x => {
const tinpo = JSON.parse(localStorage.getItem('bookmark') || JSON.stringify("{}"));
tinpo[key] = manko;
localSrotage.setItem('bookmark', JSON.stringify(tinpo));
}
const tinpo = JSON.parse(localStorage.getItem('bookmark') || JSON.stringify("{}"));
tinpo[key] = manko;
localSrotage.setItem('bookmark', JSON.stringify(tinpo));
}
変数tinpoを外側に入れておけば、別の処理で簡単にアクセスできるが、クリックメソッド内に入れてしまうとまた同じように変数宣言しなければならない。ナンセンスだが背に腹はかえられないのだ。
作品名:
プレビュー数:24
備考:続きは書店にてお買い求めください。
魅悪くちる先生の暴走
作者:雲呑めおプレビュー数:24
備考:続きは書店にてお買い求めください。
喫茶店で放送禁止用語をぺちゃくちゃ喋る変態の二人がいたら10中8九エロ漫画家とその編集担当であるという。
日付 | 2024-01-11T15:24:00 |
分類 | エロ漫画 |
画像 | 24枚 |
訪問数 |
最後までお読みいただき有難うございました
Thank you for watching until the end
Thank you for watching until the end