回调函数参数:让回调函数 showResponse 也带上参数的代码

function demo{
var url="ajaxdemo.asp";
var paras = "" ;
var myAjax = Ajax.Request(
url,
{
method: 'post',
parameters: paras,
onComplete: showResponse
});
}
function showResponse(originalRequest){
var html = originalRequest.responseText;
alert(html);
}

这是应用 prototype.js 后最常看见ajax代码由于 showResponse 不能直接带参数在处理回调时有时候比较麻烦比如要把返回html值动态插入到某个元素里面去今天终于想到了种思路方法来解决这个问题:

function demo{
var url="ajaxdemo.asp";
var paras = "" ;
var myAjax = Ajax.Request(
url,
{
method: 'post',
parameters: paras,
onComplete: function(originalRequest){showResponse(originalRequest,elemID)}
});
}
function showResponse(originalRequest,elemID){
var html = originalRequest.responseText;
$(elemID).innerHTML = html;
}

匿名这时充当了回调而showResponse则变成个普通思路方法了变换了概念问题就顺利解决
解决了这个问题还可以把这两个封装为:

function demo(url,paras,updateElemID){
var myAjax = Ajax.Request(
url,
{
method: 'post',
parameters: paras,
onComplete: function(originalRequest){showResponse(originalRequest,updateElemID)}
});
}
function showResponse(originalRequest,elemID){
var html = originalRequest.responseText;
$(elemID).innerHTML = html;
}

只需要 demo(url,paras,updateElemID) 就能完成ajax功能如果参数再扩展增加些动作就不止是update某个元素innerHTML这么简单了
Tags:  回调函数 主函数带参数 带参数的构造函数 回调函数参数

延伸阅读

最新评论

发表评论