Ajax请求“重叠”

时间:2014-03-20 02:24:49

标签: jquery mysql ajax

我正在使用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确保它拥有最新的数据并阻止它重叠?

1 个答案:

答案 0 :(得分:0)

看起来您的卡片标题是fancybox .prop,而卡片文本是由函数插入DOM的html。无法测试您的代码,可能是您只使用fancybox .prop调用绑定该属性,并且fancybox需要被事件触发?也许用jquery附上(),或者也许还有fancybox中的东西(我真的不熟悉它)?