「お気に入りに追加」というリンクがあります。デフォルトでは、このリンクをクリックしてログインすると、お気に入りが追加されたことを示す確認ページに移動します。ログインしていない場合は、ログイン画面が表示されます。
そのアイテムをお気に入りにすでに追加している場合は、テキストに「お気に入りから削除」と表示され、リンクが更新されて「?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.');
}
});