Ich habe ein kleines Problem, meine .toggleClass zu arbeiten. Ich bin sehr neu in Javascript, also vergib mir, wenn ich etwas wirklich einfaches hier vermisse. Ich möchte, dass Benutzer Lieblingsdinge wie Bilder und Posts nutzen können. Ich habe ein kleines Herz-Symbol, das beim Klicken rot/schwarz wird, je nachdem, ob sie hinzugefügt/entfernt werden. Alles funktioniert abgesehen von der .toggleClass. Kann jemand darauf hinweisen, wo ich falsch liege?toggleClass in Ajax Anfrage funktioniert nicht
index.php
<div class="heart-box">
<?php
//Check if user has fav'd the image..
$hasFav = db::getInstance()->query("SELECT * FROM favourites WHERE userID = ? AND img_id = ?", array($the_user, $img_id));
$action = $hasFav->results() ? 'unfav-heart' : 'fav-heart';
?>
<div class="<?php echo $action; ?> fa fa-heart" id="<?php echo $img_id; ?>" ></div>
</div>
Script
$(document).ready(function(){
//add to favourites...
$('.fav-heart').click(function(){
var img_id = $(this).attr('id');
$.ajax({
url: 'favourites.php',
type: 'post',
async: false,
data:{
'fav' : img_id
},
success:function(){
$(img_id).toggleClass("unfav-heart");
}
});
});
// remove from favourites...
$('.unfav-heart').click(function(){
var img_id = $(this).attr('id');
$.ajax({
url: 'favourites.php',
type: 'post',
async: false,
data:{
'fav' : img_id
},
success:function(){
$(img_id).toggleClass("fav-heart");
}
});
});
});
Es ist eine schlechte Praxis, eine Abfrage in Front-End –
Uh @ Matt.k, dass Abfrage mit PHP am Back-End, bevor die Seite gerendert wird ausgeführt wird. –
@Jay ist es immer noch eine schlechte Idee, das zu sehen?! –