我正在使用AJAX和JQuery从MySQL数据库中提取数据基本上使用以下内容:
function getCard(card, lineNr, linedisplay, type){
var textToWrite;
var d = 'card='+card;
$.ajax({
type: "POST",
url: "getcard.php",
data: d,
success: function(theXML){
cardname = $(theXML).find('card_name').text();
pastline = $(theXML).find('past').text();
presentline = $(theXML).find('present').text();
futureline = $(theXML).find('future').text();
...
if(type=="past") textToWrite = pastline;
else if (type=="present") textToWrite = presentline;
else textToWrite = futureline;
...
$("#"+lineNr).html(textToWrite);
$("#"+linedisplay).html(textToWrite);
$('.fancybox').prop('title', cardname);
}
});
};
这用于使用getcard.php从MySQL表中调用数据(不确定是否需要查看 - 基本上它将表行中的数据放入XML中,
<card_name>{$row['card_name']}</card_name>
<past>{$row['past']}</past>
<present>{$row['present']}</present>
<future>{$row['future']}</future>,
等)。
点击卡片链接后,会出现一个fancybox弹出窗口中的卡片数据(过去行等)和卡片名称作为fancybox标题。
除了一件事,所有这一切都很好。 cardname值不会以与其余数据相同的速率刷新。也就是说,我点击的第二张卡片的标题与我点击的第一张卡片的标题相同 - 但是在div中显示的其余新数据(过去行,呈现线等)都很好,但是在我疯狂地点击fancybox几次之前,cardname不会刷新。
谢谢,我猜测我的一切。
有没有办法让AJAX确保它拥有最新的数据并阻止它重叠?
答案 0 :(得分:0)
看起来您的卡片标题是fancybox .prop,而卡片文本是由函数插入DOM的html。无法测试您的代码,可能是您只使用fancybox .prop调用绑定该属性,并且fancybox需要被事件触发?也许用jquery附上(),或者也许还有fancybox中的东西(我真的不熟悉它)?