递归和传递 Ajax 回调
Recursion & Passing Ajax Callback
我正在尝试创建一个递归的$.ajax()调用者callARIs,它可以根据序列末尾引用的回调函数之前的输入运行许多$.ajax()调用。这旨在在表单提交时运行,并使用 3 个函数进行设置:
jQuery.fn.submitHandler = function(AjaxCallerInput,Callback){
$(this).submit(function(e){
e.preventDefault();
//Validate & Gather Form Data
if(!Valid){ /*ERROR*/ }
else{ callARIs(AjaxCallerInput,formData,null,Callback); }
}
}
function callARIs(Input,formData,i,Callback){
//Process Input to create PostStr and define i if null
$.ajax({ //Call ARI
url: 'ajax.php', method: 'POST', async:true, data: PostStr + formData,
complete: function(xhr){
if(i < Input.length-1){ return callARIs(Input,poststr,i+1,sqi,Callback); }
else{ return Callback(xhr.responseText); }
}
});
}
function someCallback(){ //do stuff with final ajax result }
$("form").submitHandler("ARIstr",someCallback);
递归和 ajax 调用都按预期运行,问题是回调在运行时"不是一个函数"。我认为这是由于通过递归传递引用而被破坏的。
我正在尝试找到一种方法来使提交处理程序能够定义 callARI 的参数和表单提交的所需回调。我可以通过传递索引和编写逻辑来调用callARI中的正确函数来解决此问题,但是我希望有一个更优雅的解决方案,在创建新表单和回调时不需要更新callARI或submitHandler。
提前感谢您对我如何解决此问题的任何见解。
我的递归调用中添加的一个额外参数覆盖了函数引用,谢谢凯尔!
相关文章:
- 从AJAX回调函数中分离数据
- 如何在ajax回调中使用类变量
- 使用Javascript通过ajax回调更新DOM
- php执行后的Ajax回调
- AJAX 回调在 Firefox 中失败
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- 如何将状态对象/数据传递给(异步)ajax 回调
- 在ajax回调(safari)中调用bootstrap模式显示
- Ajax回调未执行
- 无法获取函数的ajax回调
- 未调用jQuery Ajax回调.ParserError
- 处理AJAX回调
- 在多次AJAX调用后暂停执行AJAX回调
- 为什么ajax回调在我的本地变量中设置undefined
- Masonry:在AJAX回调上创建一个网格
- 多个ajax回调函数编辑localStorage
- AJAX回调非常慢
- AJAX 回调中的变量值错误
- 在回显到 AJAX 回调后执行 PHP
- 加载特定元素的 AJAX 内容(将 DOM 元素传递给 AJAX 回调函数)