2014-09-29 45 views
0

我希望用HTML5本地存儲在我的網頁數據,因此持續時間超過刷新頁面。HTML5 LocalStorage - 如何將它與超鏈接一起使用?

這裏是我的代碼:

<h3 data-target="#colours_filters">Colour</h3> 
<ul id="colours_filters"> 
    <li class="filter-option"><a href="#" data-tax="colours" data-filter=".tag-colours-black-2">Black</a></li> 
    <li class="filter-option"><a href="#" data-tax="colours" data-filter=".tag-colours-blue">Blue</a></li> 
</ul> 

所以,如果我點擊「藍」和/或「黑」,將其存儲在LocalStorage

有人可以幫點我在正確的方向?

謝謝:-)

回答

0

Check this Fiddler

$(document).ready(function(){ 

    $('.filters a').on('click', function() { 

     var data_filter = $(this).closest("a").data('filter'); 
     $(this).addClass('active'); 
     if($(this).hasClass('active')) { 
      localStorage.setItem(data_filter,true); 
     } else { 
      localStorage.setItem(data_filter,false); 
     } 

    }); 

    $('.filters a').each(function(){ 
     var data_filter = $(this).closest("a").data('filter'); 
     var checked = localStorage.getItem(data_filter); 
     if(checked){ 
      $(this).addClass('active'); 
     } else { 
      $(this).removeClass('active'); 
     } 
    }); 
});  
+0

哇!你應該得到一枚獎牌,先生!非常感謝:-D – michaelmcgurk 2014-09-29 19:45:54

1

首先嚐試給唯一的ID到元素

<h3 data-target="#colours_filters">Colour</h3> 
<ul id="colours_filters"> 
    <li class="filter-option"><a href="#" id='unique_1' data-tax="colours" data-filter=".tag-colours-black-2">Black</a></li> 
    <li class="filter-option"><a href="#" id='unique_2' data-tax="colours" data-filter=".tag-colours-blue">Blue</a></li> 
</ul> 

然後

$(document).ready(function(){ 

    $('.filter-option a').on('click', function() { 

     var isActived = $(this).hasClass('active') == false; 
     var id = $(this).attr('id'); 

     localStorage.setItem(id,isActived); 

     $(this).toggleClass('active'); 
    }); 

    $('.filter-option a').each(function(){ 
     var id = $(this).attr('id'); 

     var hasActiveClass = localStorage.getItem("active"); 

     if(hasActiveClass != undefined){ 
      $(this).addClas('active'); 
     } 
    }); 

}); 

fiddlejs

+0

的快速反應非常感謝:-)我嘗試使用這個代碼...我點擊了一個顏色,刷新頁面,但遺憾的是它並沒有保持顏色點擊「激活」我所希望的。有任何想法嗎? – michaelmcgurk 2014-09-29 19:21:06

+0

儘量給ID給每個元素和保存元素的狀態和ID,然後當你重新加載頁面收集所有的ID,找到了DOM,並給予活動類,如果是這種情況。 – BlaShadow 2014-09-29 19:25:31

+0

感謝@BlaShadow - 我對jQuery相當陌生,你能不能更新你的答案,告訴我如何最好地做到這一點?我非常感謝任何幫助:-) – michaelmcgurk 2014-09-29 19:30:17