[英]Save .addClass() with local/session storage
對於學校項目,我需要為電影院建立預訂系統,以便人們可以選擇要坐在的座位。
一個要求是,如果有人預訂了椅子,那么其他人就不應該再預訂它了。
我的想法是,當您單擊頁面底部的“購買門票”時,將課程添加到選定的椅子上,但是我該如何保存這些課程,我的教授說我應該使用HTML 5存儲,但是他們拒絕幫助我進一步。
這是我現在已經擁有的一部分:
<script>
var total = 0;
var countBlauw = 0;
var countOranje = 0;
var countRood = 0;
$(document).ready(function(){
$(".blauw").toggle(function () {
$(this).removeClass("blauw").addClass("select");
countBlauw++;
total+=7.5;
calculateTotal();
}, function() {
$(this).removeClass("select").addClass("blauw");
countBlauw--;
total-=7.5;
calculateTotal();
});
$(".oranje").toggle(function () {
$(this).removeClass("oranje").addClass("select");
countOranje++;
total+=10;
calculateTotal();
}, function() {
$(this).removeClass("select").addClass("oranje");
countOranje--;
total-=10;
calculateTotal();
});
$(".rood").toggle(function () {
$(this).removeClass("rood").addClass("select");
countRood++;
total+=15;
calculateTotal();
}, function() {
$(this).removeClass("select").addClass("rood");
countRood--;
total-=15;
calculateTotal();
});
});
</script>
<script>
function calculateTotal()
{
var divobj = document.getElementById('totalPrice');
divobj.style.display='block';
divobj.innerHTML = "Prijs €"+total+"<br /> Aantal blauwe stoelen: "+countBlauw+"<br /> Aantal oranje stoelen: "+countOranje+"<br /> Aantal rode stoelen: "+countRood;
}
</script>
<table style="empty-cells: hide; border-collapse:separate; border-spacing:2px; border-style:solid;" border="0">
<tr>
<td class="leeg"></td>
<td class="leeg"></td>
<td class="blauw"> </td>
<td class="blauw"> </td>
<td class="blauw"> </td>
<td class="blauw"> </td>
<td class="blauw"> </td>
<td class="blauw"> </td>
<td class="blauw"> </td>
<td class="blauw"> </td>
<td class="leeg"></td>
<td class="leeg"></td>
</tr>
And so forth.
<script>
$(window).load( function() {
document.getElementById('totalPrice').innerHTML = "Prijs €"+total+"<br /> Aantal blauwe stoelen: "+countBlauw+"<br /> Aantal oranje stoelen: "+countOranje+"<br /> Aantal rode stoelen: "+countRood;
});
</script>
<div id="totalPrice"></div>
是否可以將添加了.addClass()的類保存到本地或會話存儲中? 這只是一個模擬,因此,另一台計算機(或使用其他瀏覽器)上的人可以預訂同一席位並不重要。
有人可以給我一些建議嗎? :)
localStorage
只能存儲字符串值,因此它有助於使用JSON保存數組:
function loadTakenSeats() {
takenSeatsString = localStorage.takenSeats;
return takenSeatsString
? JSON.parse(takenSeatsString)
: [];
}
function saveTakenSeats(takenSeats) {
localStorage.takenSeats = JSON.stringify(takenSeats);
}
上座或下座后,您可以從保存的數組中添加或刪除其ID:
function takeSeat(seat) {
$(seat).addClass('taken');
var takenSeats = loadTakenSeats();
takenSeats.push(seat.id);
saveTakenSeats(takenSeats);
}
function untakeSeat(seat) {
$(seat).removeClass('taken');
var takenSeats = loadTakenSeats();
takenSeats.splice(takenSeats.indexOf(seat.id),1);
saveTakenSeats(takenSeats);
}
頁面加載后,您將從存儲中恢復按鈕的狀態:
$.each(loadTakenSeats(), function(i, seat){
$('#'+seat).addClass('taken');
});
請注意,此代碼並不是特別健壯,更好的實現方法是確保避免在存儲的數組中出現重復的值,將按鈕樣式從id
添加到存儲等方面分別進行更改。
我已經上傳了完整的示例進行試用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.