如何存储元素是否被选中,以便页面在刷新时记住它
How can I store whether an element is selected or not so the page will remember it upon refresh?
我正在尝试调整一些代码,我们用于存储cookie中是否选中了复选框,以便在页面刷新时记住选中或取消选中了哪些框。问题是我尝试存储的新元素现在不是一个复选框,它基本上是一个图标,打开或关闭了一个类("选定"),在其旁边放置了一个复选标记。这是切换功能:
//share - add class and check on click
$('.share-actions li a').click(function(e) {
e.preventDefault();
$(this).toggleClass('selected');
});
这是我正在尝试改编的饼干:
var $checkboxes;
// set the cookie
function setcookie() {
var options= $checkboxes.map(function() {
if (this.checked) return this.name;
}).get().join(',');
$.cookie('new_cookie', options);
}
$(function() {
$checkboxes = $('input:checkbox').change(setcookie);
});
var alreadySetCookies = $.cookie('new_cookie').split(',');
for (var $cookie in alreadySetCookies) {
$("input[name='" + alreadySetCookies[$cookie] + "']").attr("checked", "checked");
}
检测是否存在
selected
类而不是已检查状态。对原始代码进行最少的更改。
事件处理程序:
$('.share-actions li a').click(function(e) {
e.preventDefault();
$(this).toggleClass('selected');
setcookie();
});
和一般的cookie获取/设置代码:
var $checkboxes = $('.share-actions li a');
function setcookie() {
var options = $checkboxes.map(function() {
if ($(this).hasClass('selected')) return $(this).attr('id');
}).get().join(',');
$.cookie('new_cookie', options);
}
var alreadySetCookies = $.cookie('new_cookie').split(',');
alreadySetCookies.forEach(function(id) {
$("#" + id).addClass('selected');
});
每个"复选框"都需要一个唯一的 ID 才能正常工作:
<ul class="share-actions">
<li><a href="#" id="facebook">Facebook</a></li>
<li><a href="#" id="twitter">Twitter</a></li>
<li><a href="#" id="instagram">Instagram</a></li>
</ul>
相关文章:
- 在刷新之前存储元素中的数据
- ExtJS网格在存储更新后未刷新
- 页面刷新时从本地存储恢复表单
- 将图像从本地存储加载到画布仅每秒刷新一次
- 如何刷新存储和快照的 jquery 选择器变量
- 网格存储不会在 ExtJS 5 中刷新
- 页面刷新后的 Javascript 存储变量
- 如何存储元素是否被选中,以便页面在刷新时记住它
- 刷新后重置本地存储值
- OAuth2 刷新令牌.如何在客户端存储它
- 当浏览器刷新本地存储刷新时
- 如何在刷新后将本地存储值保留在 html 中
- React Flux 存储和硬刷新
- angularjs本地存储防止页面刷新
- 如何在内存存储更改后刷新dojo-gridx
- 如何在浏览器关闭但不刷新时清除本地存储
- 存储和增加数字,即使在刷新页面后
- 刷新后如何在本地存储中呈现所有密钥
- 当“从属下拉列表”刷新页面时,将输入框值存储为变量
- firebase存储中的更新记录只有在刷新页面后才可见