0

我需要这个函数来计算每次插入消息的最后一个 id,但是这样它不起作用,它总是发布初始数字

 $("#conversazione").smartupdater({
 url : "localhost/social/public/async/check-conversazione",
 minTimeout: 2000,
 type: 'POST',
 data: { 
    'id': id,
    'last': $(".messaggioAltri:first").attr("data-number-message")
},
dataType: 'JSON'
},
function (data) {

    if(data.aggiornamenti==1){

        $.each(data.messaggi, function(indice, message){

                       mess="<div class='singoloMessaggio'> data-number-message="+message.number+">"
                                ....
                                "</div>";

                        $(mess).hide();
                        $(mess).css({'background-color': '#FF7519'});
                        $('#messaggiConversazione').prepend(mess);
                        $(mess).fadeIn(1000);
                        $(mess).removeAttr("style");                           
                   });


    }else{
        //nothing
    }

}
);

我也尝试使用一个函数,比如:

$("#conversazione").smartupdater({
 url : "localhost/social/public/async/check-conversazione",
 minTimeout: 2000,
 type: 'POST',
 data: { 
   'id': id,
   'last': getLast()
 },....etc...

function getLast(){
 return $(".messaggioAltri:first").attr("data-numero-messaggio");
}

但我总是有同样的错误,我看到它总是发送初始数字......这似乎很简单,但我不知道出了什么问题......你建议做什么?

4

2 回答 2

0

您没有更新id,因此它始终具有相同的值。

您应该在回调函数中更改其值,例如

if(data.aggiornamenti==1){
     //I'm assuming the latest update is the last in the array
    id = data.aggiornamenti[data.aggiornamenti.length -1].id;
}
于 2013-05-08T17:41:01.980 回答
0

试试 JSON.stringify

$("#conversazione").smartupdater({
 url : "localhost/social/public/async/check-conversazione",
 minTimeout: 2000,
 type: 'POST',
 data: JSON.stringify({'id':id,'last': getLast()}), ....etc...
});
于 2013-05-08T16:37:21.677 回答