我写了一个“收藏”功能(几乎完全是Stefan Hoth和他之前的article的回复),这在很大程度上是在工作。但是,它很古怪。
首先,在点击页面后,收藏夹按钮需要在开始工作前按两次,之后只需单击一下即可在状态之间切换。
其次,removeClass()方法似乎很乐意删除class =“active”属性的“active”部分,这很奇怪。
function favouriteAdd (){
$.ajax({
url: base_url + "bookmarks/jq_set_bookmark_as_favourite/add/" + $("a#favourite").data("bookmark"),
success: function () {
$('a#favourite')
.addClass('active')
.attr('title', "Remove as Favorite")
.unbind('click')
.bind('click', favouriteRemove);
}
});
}
function favouriteRemove (){
$.ajax({
url: base_url + "bookmarks/jq_set_bookmark_as_favourite/remove/" + $("a#favourite").data("bookmark"),
success: function () {
$('a#favourite')
.removeClass('active')
.attr('title', "Add as Favorite")
.unbind('click')
.bind('click', favouriteAdd);
}
});
}
if($('a#favourite').hasClass('active') == true) {
$('a#favourite').bind('click', favouriteRemove);
} else {
$('a#favourite').bind('click', favouriteAdd);
}
我猜这个解决方案对于初学者来说是初等的,但是在jQuery方面,我很遗憾地处于初级阶段。
答案 0 :(得分:3)
试试这个,但要小心,因为这将删除整个类属性,如果你有其他类,那么它们将被擦除:
$('a#favourite').removeAttr("class");
另外,尝试将if语句放在ajaxComplete函数
中$(document).ajaxComplete(function() {
// code here
});