首先抱歉,我有点在jQuery初学者。Jquery变更类与饼干问题
我的问题是,即时通讯尝试使用jquery cookie制作类切换器。
它工作正常只有一个问题。 当我在主页上选择作业时,每个作业都有一个唯一的ID,并且旁边有一个按钮,当用户点击它时,它会将其保存到收藏夹中,再次将其删除。 如果它保存按钮cganges黄色,如果删除变为蓝色。
我能够保持课后页面刷新,但我的问题是我真的不能解决的是,如果我有更多的工作列出点击它保持类,我添加一个nother它从类中删除类其他并添加它点击什么,所以它不保持多个只有一个。
可以请别人给我一个提示?
我的代码:
HTML
<a href="#" id="<?php echo $res->info_id; ?>" class="favorite btn btn-primary btn-mini" title="Add to favorite">
<i class="icon-star icon-white"></i>
</a>
jQuery的
(function() {
//save to favorites
$('.favorite').on('click', function(e){
e.preventDefault();
var data = [],
newclass = 'btn-warning',
oldcalss = 'btn-primary',
fav = $(this);
favId = fav.attr('id'),
$.ajax({
type: "POST",
url: base_url + 'ajax/add_favorite/' + favId,
data: favId,
dataType: "json",
success: function(data) {
if(data.status == "removed"){
$.cookie('keepClass', 'btn-primary');
$.cookie('jId', favId);
fav.removeClass(newclass)
.addClass($.cookie('keepClass'))
.attr("title", "Add to favorites");
} else {
$.cookie('keepClass', 'btn-warning');
$.cookie('jId', favId);
fav.removeClass(oldcalss)
.addClass($.cookie('keepClass'))
.attr("title", "Remove from favorites");;
}
}
});
});
$('#' + $.cookie('jId')).attr('class', "btn btn-mini " + $.cookie('keepClass'));
})(jQuery);
谢谢
你看上去'每次覆盖'$ .cookie(“JID”) - 我建议将其存储在该cookie的一个逗号分隔的列表。 – ClarkeyBoy 2012-07-06 06:41:40
如果它不是一个很大的请求,你能给我一个例子吗? – Side 2012-07-06 06:45:27
我认为@ClarkeyBoy想说的是:不是只在Cookie中存储一个Id,而是存储多个Id。所以,你的行为可能是:i)如果'id1'被点击,检查它是否在cookie中(值是一个列表),如果是 - 什么都不做,否则将'id1'添加到cookie jId中的值列表。在用户选择带有id1,id5和id8的按钮后,您的cookie值将看起来像'id1,id5,id8'。当用户再次按下按钮id8(取消选择)时,新的cookie值应该是id1,id5 [id8应选择性地移除] – 2012-07-06 06:58:21