私は現在、異なるチームのデータを表示するページを持っています。ページを更新するときにユーザーの選択を保存する
ユーザーがクリックして「オン」または「オフ」状態にするためのデータがあり、それぞれ別のアイコンが表示されます。基本的にチェックリストに似ていますが、物理チェックボックスはありません。
ユーザーがページを更新したり、ブラウザを閉じて後で戻ったりしても、チェックボックスにチェックマークが付いていることを覚えておきたいと思います。
私はlocalStorage
が良い選択だと聞いたことがありますが、私のような状況でどのように使用するかはわかりません。
現在、私はこのコードを持っている:
team1 = {
"information1": {
"name": "tom",
"age": "34"
},
"information2": {
"name": "bob",
"age": "20"
},
};
team2 = {
"information1": {
"name": "betsy",
"age": "27"
},
"information2": {
"name": "brian",
"age": "10"
},
};
$(document).ready(function() {
$("#displayObject1").on("click", function() {
switchData(team1);
});
$("#displayObject2").on("click", function() {
switchData(team2);
});
$("#table").on("click", ".on", function() {
$(this).removeClass("on");
$(this).addClass("off");
});
$("#table").on("click", ".off", function() {
$(this).addClass("on");
$(this).removeClass("off");
});
});
function switchData(object) {
$("#table").contents("div").remove();
if (!('rows' in object)) {
var rows = [];
Object.keys(object).forEach(function (key) {
if (key != 'rows') {
rows.push($('<div class="row on">' + object[key].name + '</div>'));
}
});
object.rows = rows;
}
object.rows.forEach(function (row) {
$('#table').append(row);
});
}
これは、行がチームを代表することができます。ユーザーがブラウザセッション中に別のチームを見ると、行は色の強調表示で保持されます。
これが私のHTMLです:
<div id="displayObject1">
<span>Display object 1</span>
</div>
<div><hr></div>
<div id="displayObject2">
<span>Display object 2</span>
</div>
<div id="table">
</div>
やアイテムが "オン" と "オフ" であるリスト表示するには、いくつかのCSS。
.on {
background-color: green;
}
.off {
background-color: red;
}
ページはどのように色の強調表示を覚えていますか?
マークアップもお持ちですか?私はJS Fiddleでそれを実行し、それを動作させるための見た目を持っています。 –
うん、追加、私の悪い。 – Sej
cookie、localstorage、サーバー側で 'onbeforeunload'を使って保存するか、' beforeunload'ここにたくさんのオプションがあります。 –