感谢Arun P Johny我实现了这个代码,但是,仍然有一个pb,基本上,你点击一个div然后添加类绿色背景,所以我想在重新加载页面后保留该类,我使用jquery实现它的cookie插件,pb是没有选中复选框的div,不应该在页面重新加载后取活动类,但不幸的是它的情况......
var $qsts = $(".quest").show();
var $anrs = $(".ans").hide();
$('.quest').click(function(){
var $ans = $(this).next().toggle(10);
$anrs.not($ans).hide();
});
$('.ans').change(function(){
var $ans = $(this).closest('.ans');
var $act = $ans.prev().toggleClass('question-active', $ans.find('input:checkbox:checked').length > 0)
if($act.hasClass('question-active')){
$.cookie('question-active', $act.get(0).className.match(/\b(question\d*)\b/)[1])
} else {
$.removeCookie('question-active');
}
});
var active = $.cookie('question-active');
if(active){
$qsts.filter('.' + active).addClass('question-active')
}
以下是完整的代码:http://jsfiddle.net/arunpjohny/hZeyd/7/
请求帮助
答案 0 :(得分:2)
看看
var $qsts = $(".quest").show();
var $anrs = $(".ans").hide();
$('.quest').click(function(){
var $ans = $(this).next().toggle(10);
$anrs.not($ans).hide();
});
$('.ans').change(function(){
var $ans = $(this).closest('.ans');
var $act = $ans.prev().toggleClass('question-active', $ans.find('input:checkbox:checked').length > 0)
var items = JSON.parse($.cookie('question-active') || '[]');
var qstName = $act.get(0).className.match(/\b(question\d*)\b/)[1];
if($act.hasClass('question-active')){
if($.inArray(qstName, items) == -1){
items.push(qstName)
}
} else {
items.splice($.inArray(qstName, items), 1)
}
$.cookie('question-active', JSON.stringify(items))
});
var items = JSON.parse($.cookie('question-active') || '[]');
if(items && items.length){
$qsts.filter('.' + items.join(', .')).addClass('question-active')
}
演示:Fiddle