【发布时间】:2011-02-15 16:18:59
【问题描述】:
我正在为一组应用程序设计一个 AJAXy 表单生成 Javascript 库,其中回调行为应因应用程序而异。我公开的 API 函数采用一组回调,这些回调将功能附加到标准表单中发生的各种按钮和其他事件:
- 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);
【问题讨论】:
标签: javascript ajax callback closures