我的链接显示“添加到收藏夹”。默认情况下,当您单击此链接并且您已登录时,您将转到确认页面以说明您的收藏夹已添加。如果您未登录,则会转到登录屏幕。
如果您已将该项目添加到收藏夹,则会显示“从收藏夹中删除”文字,其中包含“?A =删除”的更新链接。如果单击它,您将被重定向到确认收藏夹删除的页面。
现在我要做的是:
如果您尚未登录,请收到提醒信息。
如果你已登录 - 刷新页面(理想情况下我想将'添加到收藏夹'更改为'收藏成功添加'而不是刷新页面 - 但我不知道如何)。
如果您已添加到收藏夹 - 刷新页面(理想情况下,我想将“从收藏夹中移除”更改为“收藏夹已成功删除”而不是刷新页面 - 但我不知道如何)。< / p>
{module_isloggedin}标记由我正在使用的系统生成。如果登录,它会生成'1'。如果没有登录,则为“0”。
到目前为止,所发生的一切都是错误信息 - 也许是因为我的:包含不起作用?
整个代码似乎太长而且草率。我还在学习:)。
到目前为止,这是我的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.');
}
});
答案 0 :(得分:1)
$('.add-favourites a').on('click', function (e) {
e.preventDefault();
var obj = $(this);
//var loggedin = "{module_isloggedin}";
var loggedin = "1";
if (loggedin == 1) {
if ($(this).hasClass('AddToFavourites')) {
$.ajax({
url: $(this).attr('href'),
data: { 'A': 'Add' },
cache: false,
success: function (data) {
obj.removeClass('AddToFavourites').addClass('RemoveFromFavourites').text('Favorite added successfully');
}
});
} else {
$.ajax({
url: $(this).attr('href'),
data: { 'A': 'Remove' },
cache: false,
success: function (data) {
obj.removeClass('RemoveFromFavourites').addClass('AddToFavourites').text('Add to favorites');
}
});
}
} else {
alert('You must be logged in to add favorites.');
}
});
<a href="Your Url" class="AddToFavourites">Add to favorites</a>
<a href="Your Url" class="RemoveFromFavourites">Favorite added successfully</a>
答案 1 :(得分:1)
使用Jquery库,要从元素中获取值(字符串,文本或其他html),我们可以使用.html()或.text();
var stringtocheckon = $('.box-content ul li').html();
然后检查
if(stringtocheckon.indexOf('Add to Favorites')>=0) { }
答案 2 :(得分:0)
欢迎贾斯汀,
你说代码有点难看 - 要整理一下,自己创建一个函数来执行ajax位...
function getmypageandreload(url,senddata) {
$.ajax({
url: url,
data: { 'A': senddata },
cache: false,
success: function (data) {
document.location.reload(true);
}
}
$(".yourelementclass").click(function() {
var loggedin = "{module_isloggedin}";
var url=$(this).attr('href');
var senddata="";
if (loggedin == 1) {
var stringtocheckon = $('.add-favourites a').html();
if(stringtocheckon.indexOf('Add to Favorites')>=0) {
senddata="Add";
} else if($(this).attr('href').indexOf("A=Remove") != -1){
senddata = "Remove";
}
getmypageandreload(url,senddata);
} else { alert('You must be logged in to add favourites.'); }
});
});
看起来你可以进一步减少'if else's;通过在此处设置默认值senddata =“remove”。看起来它只是添加或删除您正在使用的。
我没有运行上面的代码,但希望你得到要点
罗布