2014-03-04 18 views
0

的方法我有一個變量設置如下:確定何時調用使用jQuery

var lastId = null 

我只需要調用我的GetApproval方法,一次,所以我試圖控制它,像這樣:

if(lastId != currentId) 
{ 
    GetAppoval(currentId); 
    lastId = currentId; 

}

但是,將GetApproval和lastId分配之間的警報顯示,該是相同的,每次此代碼被命中,因此導致在呼叫GetApproval每次正在取得進展。

這是爲什麼?

編輯

對不起 - GetApproval是一種無效的方法,它調用C#的WebMethod來填充一個div

編輯 GetApprovalMethod:

function GetApproval(messageId) { 
      $.ajax({ 
       type: "POST", 
       url: "Home.aspx/GetApproval", 
       cache: false, 
       data: JSON.stringify({ messageId: messageId }), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       error: function (xhr) { 

        var contentType = xhr.getResponseHeader("Content-Type"); 
        if (xhr.status === 401 && contentType.toLowerCase().indexOf("text/html") >= 0) { 
         window.location.reload(); 
        } 
       }, 
       success: function (msg) { 

        $.each(msg.d, function (index, item) { 
         $('#approvaltmpl').tmpl(item).appendTo('#results'); 
        }); 
       } 
      }); 

     } 
+1

什麼是GetAppoval()方法?你能提供相關的代碼嗎?順便說一下,是不是'GetApproval()'? –

+0

有一個)currentId後 –

+0

因此看起來像一個異步方法。你必須發佈相關的代碼,否則我不認爲你可以得到任何準確的答案...並提供更多的已發佈代碼的cotext。每個變量的範圍是什麼。你的問題真的缺乏足夠的信息。 –

回答

0
Replace the below code and check 
if(lastId != currentId) 
{ 
    currentId = GetAppoval(currentId); 
    lastId = currentId; 
} 
+1

還沒有嘗試過,但是這個假設,GetApproval正在返回一個值,它沒有。它只是調用webmethod來填充div。 – CSharpNewBee

+0

然後它返回 –

0

好了,最後調用$( '#結果')空()。在每次調用GetApproval方法之前