我正在爲一組應用程序設計一個AJAXy表單生成Javascript庫,其中回調行爲應該根據應用程序而有所不同。我暴露API函數採取一組附加功能,以標準的形式中發生的各種按鈕和其他事件的回調:我如何傳遞封閉的函數作爲它自己的JavaScript遞歸回調?
- onLoadCallback [當形式完全加載]
- onSaveCallback [時節省成功處理]
- onCancelCallback [當取消按鈕被點擊]
- busyCallback [每當AJAX操作正在進行]
- readyCallback [當AJAX操作結束]
例如,一個應用程序想要在新的彈出窗口中呈現此表單,而另一個應用程序則希望它在現有頁面上內聯。在彈出的場景中,onSaveCallback將關閉彈出窗口並將消息發佈到啓動頁面。在內聯場景中,onSaveCallback應通過重新運行該函數來重新加載表單內容。
有沒有一種標準的,簡單的方法來做這種遞歸回調,而不是兩次寫入函數,如下所示?
MyFormLibrary.displayForm(
div,
formName,
query,
onLoadCallback,
function onSaveCallback(result) {
MyFormLibrary.displayForm(
div,
formName,
query,
onLoadCallback,
onSaveCallback,
onCancelCallback,
busyCallback,
readyCallback);
},
onCancelCallback,
busyCallback,
readyCallback);
,完美的工作 - 謝謝!我以爲我之前曾嘗試過,但我可能做得太過複雜,失敗了。此外,現在我將回調包裝在單個對象中以簡化代碼,這實際上使得這種效果更好。 – Jon 2011-02-15 16:38:51