J'ai un projet sur lequel je travaille qui utilise une petite image pour marquer un enregistrement comme favori sur plusieurs lignes dans un tableau. Les données sont extraites d'une base de données et l'image est basée sur le fait que cet élément est favori ou non. Une image pour un favori, une image différente si ce n'est pas un favori. Je veux que l'utilisateur puisse basculer l'image et en faire un favori ou non. Voici mon code:jQuery toggle() avec état initial inconnu
$(function() {
$('.FavoriteToggle').toggle(
function() {
$(this).find("img").attr({src:"../../images/icons/favorite.png"});
var ListText = $(this).find('.FavoriteToggleIcon').attr("title");
var ListID = ListText.match(/\d+/);
$.ajax({
url: "include/AJAX.inc.php",
type: "GET",
data: "action=favorite&ItemType=0&ItemID=" + ListID,
success: function() {}
});
},
function() {
$(this).find("img").attr({src:"../../images/icons/favorite_not.png"});
var ListText = $(this).find('.FavoriteToggleIcon').attr("title");
var ListID = ListText.match(/\d+/);
$.ajax({
url: "include/AJAX.inc.php",
type: "GET",
data: "action=favorite&ItemType=0&ItemID=" + ListID,
success: function() {}
});
}
);
});
Fonctionne bien si l'état initial n'est pas un favori. Mais vous devez double-cliquer pour obtenir l'image à changer si c'est un favori au départ. Cela provoque l'AJAX à tirer deux fois et essentiellement en faire un favori, puis pas un favori avant que l'image répond. L'utilisateur pense qu'il en a fait un favori parce que l'image a changé, mais en fait, ce n'est pas le cas. Aidez quelqu'un?
@Jason: Avez-vous l'intention d'évaluer, de commenter ou d'accepter l'une des réponses données à un moment donné? – Tomalak