2014-09-03 36 views
0

所以我想創建一個收藏標籤選項爲每個用戶,以便有以下代碼:使用localStorage存儲類更改 - 可以這樣做嗎?

if (window.localStorage) { 
var didTheyFave = $('.icon-star-empty').click(function() { 
    localStorage.setItem('didTheyFave', faveClass()); 
    alert(localStorage.getItem('didTheyFave')); 
}); 
} 

function faveClass() { 
    $(this).toggleClass("icon-star-empty"); 
    $(this).toggleClass('icon-star'); 
} 

所以,當點擊空星形圖標,當它變成一個完整的圖標,但希望這種改變存儲在瀏覽器,所以當他們回來時它仍然是完整的圖標。我試圖調用一個函數作爲值,但不認爲這是允許的。

感謝

+1

正如'localStorage'這個名字所暗示的那樣,它是一個容納數據的地方。你的情況是保存函數的返回值。嘗試在函數中返回1,您將看到保存的值。 – gustavodidomenico 2014-09-03 21:33:52

+0

編輯下面的答案。 – 2014-09-03 21:35:51

+0

你想在本地存儲中存儲什麼? – 76484 2014-09-04 00:29:54

回答

0
if (window.localStorage) { 
var didTheyFave = $('#yourIDforStar').click(function() { 
    if($(this).hasClass('icon-star'){ 
     $(this).addClass('icon-star-empty'); 
     $(this).removeClass('icon-star'); 
     var fav = false; 
    } else { 
      $(this).addClass('icon-star'); 
     $(this).removeClass('icon-star-empty'); 
     var fav = true; 
    } 
    localStorage.setItem('didTheyFave', fav); 
    alert(localStorage.getItem('didTheyFave')); 
}); 
} 

嘗試這樣的事情。

+0

這很棒,但是一旦用戶點擊了,我希望這個存儲,所以如果瀏覽器刷新它保持這個新的.icon-star類? – user3927582 2014-09-03 21:47:00

+0

然後,您需要首先根據localStorage中存在的內容加載您的課程。你可以在頁面加載之前進行get操作,以檢查它們是否將'fav'設置爲true或false,如果true設置爲icon-star或者設置爲icon-star-empty。 – 2014-09-03 21:50:26