2011-12-01 59 views
0

我有一個JavaScript函數。在thi函數中,我正在調用如下的按鈕事件。Java腳本函數保存,直到保存evenet執行完成

$("#btnSave").trigger("click"); 

我的查詢是,有沒有什麼辦法保持控制在這一行直到保存完成? 我有一些代碼寫在這行下面,它被覆蓋。

有什麼建議嗎?

+0

請顯示驗證碼。問題沒有意義。 –

回答

1

如果你發佈了一些代碼,它會有幫助。

您可以通過兩種方式完成:

1.)使用輪詢。觸發器調用之後,使用循環檢查保存完成時必須設置的標誌。從密集的js處理中保存CPU需要超時。

2.)將代碼在函數內的觸發器調用後執行。將此函數作爲回調傳遞給onClick函數。

function onSaveClick(e) { 
     //do my save stuff 

     e.data.callback(); 
    } 

推薦2號。 //附加onclick事件 $(「#btnSave」)。click(onSaveClick);

//you onclick function 
function onSaveClick(event, callback) { 
    //save data 
    callback(); 
} 

//trigger 
$("#btnSave").trigger("click", afterSave); 

//after save stuff 
function afterSave(){ 
//do more stuff 
} 
+0

這裏是什麼?我的意思是按鈕事件不顯示e.data – Pankaj

+1

「e」是傳遞給事件回調的事件。 當您分配「點擊」事件時,您必須設置回調: $(「mybutton」)。click({callback:「myAfterSaveFunction」},myOnButtonClickFunction); – kcsoft

+1

對不起,你不能更多地解釋它。 – Pankaj

1

使用回調。

獲取觸發線下的行,並在事件成功時作爲回調傳遞給您的保存功能。

+0

你的意思是我應該在.cs文件中移動java腳本代碼?因爲保存事件在.cs文件中。請再解釋一下,如果我誤解了一些東西。 – Pankaj

+0

當你觸發你的保存按鈕,完成了一些事情。我在想你正在使用AJAX請求來保存你的更改。但是,如果定期發佈POST,則只需在按鈕單擊事件中返回false,並且不會執行任何操作。你能更好地解釋你的情況嗎? –

+0

是的,保存發生在Ajax請求下。我如何從保存點擊事件返回false。我的意思是「$(」#btnSave「)。trigger(」click「); 」這行一旦執行下面的所有java腳本代碼就將控制權發送給.cs文件。我可以看到影響UI的JavaScript代碼,但保存事件是在所有Java腳本代碼執行完畢後發送控制,以便UI更改正在執行回滾。 – Pankaj