我有一个链接,上面写着“添加到收藏夹”。默认情况下,当您单击此链接并登录时,您会转到确认页面,说明您的收藏夹已添加。如果您没有登录,它会将您带到登录屏幕。
如果您已经将该项目添加到您的收藏夹,则文本会显示“从收藏夹中删除”,并带有更新的链接以包含“?A=删除”。如果单击它,您将被重定向到确认删除收藏夹的页面。
现在我想做的是:
如果您未登录,则会收到警报消息。
如果您已登录 - 刷新页面(理想情况下,我想将“添加到收藏夹”更改为“收藏夹已成功添加”而不是刷新页面 - 但我不知道如何)。
如果您已经添加到收藏夹 - 刷新页面(理想情况下,我想将“从收藏夹中删除”更改为“收藏夹已成功删除”,而不是刷新页面 - 但我不知道如何)。
{module_isloggedin} 标签由我使用的系统生成。如果登录则生成“1”,如果未登录则生成“0”。
到目前为止,发生的只是错误消息-也许是因为我的 :contains 不起作用?
整个代码似乎太长太草率了。我还在学习 :)
到目前为止,这是我的 jQuery,我还没有为“从收藏夹中删除”进行页面刷新。
/** 更新的代码有效,只是有点难看:) **/
jQuery('.add-favourites a').live('click', function(e){
e.preventDefault();
var loggedin = "{module_isloggedin}";
if (loggedin == 1) {
var stringtocheckon = jQuery('.add-favourites a').html();
if(stringtocheckon.indexOf('Add to Favorites')>=0) {
$.ajax({
url: $(this).attr('href'),
data: { 'A': 'Add' },
cache: false,
success: function (data) {
document.location.reload(true);
}
});
}else{
if(jQuery(this).attr('href').indexOf("A=Remove") != -1){
jQuery.ajax({
url: jQuery(this).attr('href'),
cache: false,
success: function (data) {
document.location.reload(true);
}
});
}else{
jQuery.ajax({
url: jQuery(this).attr('href')+"&A=Remove",
cache: false,
success: function (data) {
document.location.reload(true);
}
});
}
}
}else{
alert('You must be logged in to add favourites.');
}
});