2017-01-30 24 views
0

こんにちは、クリックしてお気に入りに追加する必要がありますし、再度クリックしたときにお気に入りから削除する必要があります。ページの更新時に追加と削除の両方が機能していますが、一度追加してからもう一度削除しようとすると、もう一度追加しても機能しません。続きToggleお気に入りに追加/お気に入りから削除 - 動作していません

これはjqueryの

$('.addtofavorite').click(function() { 
    event.preventDefault(); 
    var ins_id = $(this).attr('pid'); 
    var reference = this; 

    $.ajax(
    { 
     type: 'POST', 
     url: '../controllers/favoritesaddremove.php', 
     data: 

     { 
      ins_id: ins_id 
     }, 
     success: function(data) 
     { 
     $(reference).removeClass('addtofavorite').addClass('alreadyfavorite'); 
     } 
    }); 
}); 


$('.alreadyfavorite').click(function() { 
    event.preventDefault(); 
    var del_id = $(this).attr('fpid'); 
    var reference = this; 

    $.ajax(
    { 
     type: 'POST', 
     url: '../controllers/favoritesaddremove.php', 
     data: 

     { 
      del_id: del_id 
     }, 
     success: function(data) 
     { 
     $(reference).removeClass('alreadyfavorite').addClass('addtofavorite'); 
     } 
    }); 
}); 

はまた誰かがstackoverflowの上で掲示​​しながら、コードをラップする方法を私に伝えることができている

<a href="#"><img class="<?php if($favorite == 1){ echo 'alreadyfavorite';} else { echo 'addtofavorite';} ?>" pid="<?php echo $propertyid; ?>" fpid="<?php while($data5=$select5->fetch()){echo $data5['favorite_properties_id'];} ?>" src="../images/system/addtofavorite.png"></a> 

HTML/PHPで、私のHTML/PHPコードのように思えます水平スクロールを表示しています...

答えて

1

jqueryトグルクラスで試すことができます。

$(element).toggleClass("c1 c2"); 

もセレクタと同じクラスを使用できます。

$(".c1, .c2").toggleClass("c1 c2"); 
+0

クラスが切り替えなっている...とjqueryの効果は、CSSで起こっているが、私は..新しく更新されたクラス上で動作するように、他のクリック機能をしようとした場合、新たに更新されたクラスは、jQueryのによってピックアップ取得されていません.then – DragonFire

+0

あなたの問題を解決しました。代わりに '$(」。C1、.c2 ")の toggleClass(" C1 C2 "); ' ... 書き込み ' $(要素).toggleClass(" C1 c2" は);' としてクラス名は動的に変化しています。 toggleclassはページの読み込み時にバインドされます。したがって、完全なクラスセレクタをトグルしても機能しません。 idまたはdata属性のような別のセレクタを使用します。 –

関連する問題