簡體   English   中英

刷新后如何保存按鈕的狀態?

[英]How can i save state my button after refresh?

我有這個樣本:

鏈接

代碼HTML:

<div class="square">
</div>

代碼CSS:

.square{
    width:20px;
    height:20px;
    background:green;
}

.fa-square{
    background:red;
     width:20px;
    height:20px;
}

代碼JS:

$("div").click(function(){

                      if ( $( this ).hasClass( "fa-square" ) ) {
                           $( this ).removeClass('fa-square').addClass('square');
                      }else{
                             $('.square').removeClass('square').addClass('fa-square');
                      }
            });

我想做的就是相信...我想在刷新頁面按鈕后保存狀態

例如,...如果按鈕為綠色而為...,則刷新后保持綠色刷新。如果按鈕為紅色,則刷新后保持紅色。

你該怎么做? 有人可以給我看一個簡單的例子嗎?

提前致謝!

您可以設置cookie並在內容的開頭讀取它們,以檢查是否設置了像這樣的小提琴狀態

function readCookie(name) {
return (name = new RegExp('(?:^|;\\s*)' + ('' + name).replace(/[-[\]{} ()*+?.,\\^$|#\s]/g, '\\$&') + '=([^;]*)').exec(document.cookie)) && name[1];
}
if(readCookie('state') == "fa-square"){
$('div').addClass('fa-square');
}else if(readCookie('state') == "square"){
$('div').addClass('square');
}
$("div").click(function () {
if ($(this).hasClass("fa-square")) {
    $(this).removeClass('fa-square').addClass('square');
    document.cookie= "state=square";
} else {
    $('.square').removeClass('square').addClass('fa-square');
    document.cookie= "state=fa-square";
}
});
var retrievedObject = localStorage.getItem('class');
if(retrievedObject){
    $('div').addClass(retrievedObject)
}

console.log('class ', (retrievedObject));
$("div").click(function () {

    if ($(this).hasClass("fa-square")) {
        $(this).removeClass('fa-square').addClass('square');
        localStorage.setItem('class', 'square');
    } else {
        $('.square').removeClass('square').addClass('fa-square');
        localStorage.setItem('class', 'fa-square');
    }



});

這個利用本地存儲來存儲class的值,然后在onload時將存儲的class給div

演示

使用localStorage嘗試此示例

 $(function() { var cls = 'state'; //key name for local storage var sqr = $('.square'); sqr.addClass(localStorage.getItem(cls)); //restore state on page load sqr.on('click', function() { sqr.toggleClass('fa-square'); //shorthand for add/remove class localStorage.setItem(cls, this.className); //preserve current state on every click }); }); 
 .square { width: 20px; height: 20px; background: green; } .fa-square { background: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div class="square"></div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM