首先抱歉,我有點在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