私は3つのリンクを作成しようとしています。これらのリンクをクリックすると、divが表示されます。これらのリンクをもう一度クリックすると、そのリンクの別のタイプが表示されます。たとえば、リンクがある場合、one
それをクリックするとdivが生成されone
ます。もう一度クリックすると、divが生成されone1
ます。このように、各要素には一意のIDがあり、後で個々のdivにカスタムスタイルを適用できます。
ユーザーがa
リンクの1つをクリックすると、そのタイプのdivがクリックされた回数のlocalStorageキーが作成されます。たとえば、divone
の行5
時間をクリックすると、localStorageキーは5になります。次に、ページがリロードされると、スクリプトはdivをページに5回複製し、パート1から5のカウンターを設定します。リンクをもう一度クリックし始めると、a
リンクは1からではなく、5から始まるため、競合するIDではありません。
私が遭遇している問題は、削除機能です。ユーザー5
がdivを複製したとしますone
。つまり、one1, one2, one3, one4, one5
すべてが画面に表示されます。ユーザーがページをリロードしても、それらはすべてまだそこにあります。ただし、ユーザーがページから削除div1
したとします。それに関連するすべてのスタイリングを削除div1
し、他のdivをそのまま残します...
ただし、ページをリロードすると、スクリプトは、からの複製ではなく、から始まるdivを複製します1-4
(localStorageキーに保存されたのは4 divのみであるため)、、、または、が削除されました。2-5
#1
div1
それは読むのがたくさんあり、理解するのが難しいかもしれないことを私は理解しているので、私はその中のコードをいじくりまわしました。
http://jsfiddle.net/charlescarver/bMzME/2/
私が言っていることをテストするには、いくつかのdivを表示する必要があります。たとえば、「1つ」の5つです。#one1, #two1, and #three1
それらを削除するとどうなるかを示すために、すべてに境界線があることに気付くでしょう。divを複製するdiv1
と、境界線が表示されます。そのdivを削除した場合、ページをリロードするまで、ページ上の他のdivは影響を受けません。リロードすると、前者div2
のIDがに変更されたdiv1
ままではなく、に変更されていることがわかりdiv2
ます。
スクリプト全体を書き直さずにこれを修正する方法はありますか?私はそれを修正するより速い方法があるかもしれないと感じます、そして私はそれを想像することができません。
PS、あなたが上記のすべてを読んだら、私は正直に感謝しています