我正在开发一个项目,其中使用一张小图片来标记表格中多行记录的收藏状态。数据从数据库中获取,图片基于该项是否为收藏项。如果是收藏项,则使用一张图片,否则使用另一张不同的图片。我希望用户能够切换图片并将其设为收藏或非收藏状态。以下是我的代码:
$(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 () {}
});
}
);
});
如果初始状态不是一个收藏夹,它运行得非常好。但如果它最初是一个收藏夹,你必须双击才能改变图像。这会导致 AJAX 两次触发,本质上使其在图像响应之前成为一个收藏夹然后不再是收藏夹。用户认为他已经将其添加到收藏夹中,因为图像发生了变化,但实际上并没有。有人可以帮忙吗?