有很多关于这个功能的话题,但是我似乎无法得到它的工作。 我GOOGLE了这个特定的情况下,和一堆链接,让我在这里,但strangly足够我似乎无法让他们的工作。 我没有得到工作的唯一的事情就是以下几点: http://dl.dropbox.com/u/2238080/a/!old/z.htm但正如你所看到的,它不存储盒的状态选中。
问候,鲁本
有很多关于这个功能的话题,但是我似乎无法得到它的工作。 我GOOGLE了这个特定的情况下,和一堆链接,让我在这里,但strangly足够我似乎无法让他们的工作。 我没有得到工作的唯一的事情就是以下几点: http://dl.dropbox.com/u/2238080/a/!old/z.htm但正如你所看到的,它不存储盒的状态选中。
问候,鲁本
你可以改变所有你的代码只是:编辑,以去除部分不需要的。
$(document).ready( function(){
// read the current/previous setting
$("input.box[type=checkbox]").each(function() {
var name = $(this).attr('name');
if ($.cookie(name) && $.cookie(name) == "true") {
$(this).prop('checked', $.cookie(name));
}
});
// event management
$("input.box[type=checkbox]").change(function() {
var name = $(this).attr("name");
$.cookie(name, $(this).prop('checked'), {
path: '/',
expires: 365
});
});
});
包括摆脱所有这些:
$(document).ready( function(){
remember("[name=1]");
});
...
编辑:那么详细的版本:
$("input.box").each(function() {
var mycookie = $.cookie($(this).attr('name'));
if (mycookie && mycookie == "true") {
$(this).prop('checked', mycookie);
}
});
$("input.box").change(function() {
$.cookie($(this).attr("name"), $(this).prop('checked'), {
path: '/',
expires: 365
});
});
工作示例: http://jsfiddle.net/R73vy/
如果你不严格需要使用Cookie,使用较新的HTML5 Web存储(特别是在这种情况下,sessionStorage的对象)是很多比在cookie中存储更方便,更好:
http://www.w3schools.com/html/html5_webstorage.asp
浏览器支持得满满的:
http://caniuse.com/#search=sessionstorage
如果你在一个复选框只是有兴趣和/或你不想以包括此jQuery的cookie的插件,下面是两行代码:
//on page load set the checkbox to stored value or default to true
$('#turbo').prop('checked' , ( typeof sessionStorage.turbo !== 'undefined' ) ? (sessionStorage.turbo=='true') : true );
//when checkbox is updated, update stored value
$('#turbo').change( function() { sessionStorage.turbo = $(this).prop('checked'); });
这也不会使用Cookie,这样可以节省带宽的一对夫妇字节。 更改为localStorage的延长保存的选择的寿命。
应该用jQuery <1.6工作,但首先是1.6,你应该改变的每一次出场.attr("checked")
以.prop("checked")
编辑:改变了,如果条件检查的cookie
function remember( selector ){
$(selector).each(
function(){
var name = $(this).attr('name');
if( $.cookie( name ) && $.cookie(name)=="true" ){
$(this).prop('checked', true);
} else {
$(this).prop('checked', false)
}
$(this).change(
function(){
$.cookie(name, $(this).prop('checked'), { path: '/', expires: 365 });
}
);
}
);
}