我希望浏览器能够记住所选元素。这是我第一次使用js-cookie而且我发现文档非常缺乏。我的经验不足也没有帮助,所以我决定在这里寻求帮助。
HTML
<ul>
<li class='selected' id='item1'>
<img src='https://dummyimage.com/100x100/000/fff'/>
</li>
<li id='item2'>
<img src='https://dummyimage.com/100x100/000/fff'/>
</li>
<li id='item3'>
<img src='https://dummyimage.com/100x100/000/fff'/>
</li>
</ul>
CSS
ul{margin:0;padding:0}
li{float:left;list-style-type:none}
img{margin-left:5px}
.selected img{border:3px solid red}
脚本
$('li').on('click', function(){
$(this).siblings().removeClass('selected')
$(this).addClass('selected');
})
这里是我想要完成的事情的JsFiddle。 https://jsfiddle.net/cb7pf26u/3/
答案 0 :(得分:0)
对于您希望保留在本地但不需要传递给服务器的数据,最好将其保存在localstorage和cooke中。 cookie被传递回服务器请求,不需要浪费资源。
这里是你的小提琴 - https://jsfiddle.net/denov/cb7pf26u/4/
function setStyle(node) {
node.siblings().removeClass('selected')
node.addClass('selected');
}
function startup() {
var defaultId = 'item1';
lastId = localStorage.getItem('keep_track_example') || defaultId;
$('li').on('click', function(){
setStyle($(this));
localStorage.setItem('keep_track_example', $(this).attr('id'));
})
setStyle($('#'+lastId));
}
startup();
如果你真的想使用cookie,你只需要用$.cookie()
替换对localstorage的调用