2011-10-22 24 views
0

我正在嘗試使用.ajaxSubmit()。我想通過它的選項對象。我想根據用戶的行爲創建這個選項對象。所以這是我正在做它:如何在不調用函數的情況下將函數作爲javascript對象的一部分傳遞

$('#my-form').ajaxSubmit(GetSearchAjaxFormOptions(param1, param2)); 

function GetSearchAjaxFormOptions(param1, param2) { 
    return { target: '#results', 
     data: GetData(), 
     success: RunAfterAjaxSubmit(param1, param2) 
    }; 
} 

function RunAfterAjaxSubmit(param1, param2) { 
    // do stuff 
} 

一切正常,只是RunAfterAjaxSubmit被稱爲不僅是Ajax調用返回後,又前Ajax調用在以下行提出:

成功:RunAfterAjaxSubmit(param1,param2)

如何更改我的代碼,以便僅在返回ajax調用後調用它。

非常感謝!

回答

0

改變成功行:

success: function() { RunAfterAjaxSubmit(param1, param2)} 

修復問題

1

這聽起來像是關閉工作。 ajax成功屬性需要一個回調函數,它將嘗試將其返回的數據作爲第一個參數。所以做這樣的事情,如果你仍然想使用你的參數1和參數

$('#my-form').ajaxSubmit(GetSearchAjaxFormOptions(param1, param2)); 

function GetSearchAjaxFormOptions(param1, param2) { 
    return { target: '#results', 
     data: GetData(), 
     success: RunAfterAjaxSubmit(param1, param2) 
    }; 
} 

function RunAfterAjaxSubmit(param1, param2) { 
    return function(ajaxData){ 
     //do stuff with param1 and param2 here as well as the ajaxData it returns if any 
    } 
} 
+0

謝謝,我嘗試這樣做。它沒有工作。函數中的代碼(ajaxData)永遠不會到達。達到RunAfterAjaxSubmit時。 – Barka

+0

你確定你的ajax返回成功的返回碼嗎? –

+0

很確定。我的代碼正常工作的方式。 ajax結果會直接顯示出來。我只是在提交之前調用RunAfterAjaxSubmit一次,在提交之後調用一次。我需要在出門前得到一次。 – Barka

相關問題