最初に申し訳ありませんが、jqueryの初心者です。
私の問題は、jquerycookieを使用してクラススイッチャーを作成しようとしていることです。
1つの問題だけで問題なく動作します。メインページでジョブを選択すると、すべてのジョブに一意のIDがあり、その横にボタンがあります。ユーザーがそれをクリックすると、お気に入りに保存され、もう一度クリックすると削除されます。保存した場合はボタンが黄色に変わり、削除した場合は青色に変わります。
ページを更新した後もクラスを維持できましたが、私の問題は本当に解決できないことです。リストされているジョブがさらにある場合は、それをクリックするとクラスが維持され、他のクラスからクラスが削除されて追加されます。何がクリックされたので、複数の1つだけに保持されません。
誰かが私にヒントをくれませんか?
私のコード:
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);
ありがとうございました