javascript回调函数中如何传参

我包装了jQuery的ajax方法functiondoAjax(u,param,callback){$.ajax({type:'POST',url:u,data:para... 我包装了jQuery的ajax方法
function doAjax(u,param,callback){
$.ajax({
type:'POST',
url:u,
data:param,
success:callback
});
}

function showAlert(data){
alert(data);
}

比如这样调用 doAjax("server.php","id=12&type=1",showAlert);
$.ajax 在success后,会返回一个data到showAlert中,显示出来 ,没有问题.
可是,当我想多传一个参数给showAlert时怎么写?
写成doAjax("server.php","id=12&type=1",showAlert("hi",data))、或者把上面的success:callback 写成success:callback(msg,data)显然都不行,如之奈何?求助~~~
展开
 我来答
企鹅的老公
推荐于2017-09-21 · TA获得超过1464个赞
知道小有建树答主
回答量:485
采纳率:40%
帮助的人:326万
展开全部
function doAjax(u,param,callback){
$.ajax({
type:'POST',
url:u,
data:param,
success:callback
});
}

function showAlert(data,test1,test2){

alert(data+" "+test1+" "+test2);
}

window.onload = doAjax("server","id=12&type=1",function(data){showAlert(data,3,5)});
调用doajax的时候,回调函数的写法变一下,就可以了。

我把你server的后缀名去掉了,免得审核不过,你加下。
测试过没有问题。
zhuixuecool
2011-08-14 · 超过15用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:41.5万
展开全部
给你看看我写的吧。我的是J2EE,原理都是一样的。

<form name="frm_add" id="frm_add" method="post" enctype="multipart/form-data" >
。。。。。表单域。。。。
<input type="button" value="保存" onclick="doSave()" icon="icon-save"/>
<input type="reset" value="清除"/>
</form>
//表单提交的时候,先给他验证,如果你是想测试,这个可以不需要。
function doSave(){
var data = checkinput();
if (data==false){
return;
}
if (data){
//提交操作
if (repeatSubmit){
return ;
}else{
repeatSubmit = true;
}
submit();
}
}
//表单真正的提交函数
function submit(){
var options = {
url: ****你的URL*****,
success: callback, // post-submit callback 表单提交成功后被调用的回调函数
type: 'post', // 'get' or 'post', override for form's 'method' attribute
dataType: 'json' // 'xml', 'script', or 'json' (expected server response type)
};
$('#frm_add').ajaxSubmit(options);
}
//验证表单函数
function checkinput(){
。。。。验证主体。。。。
return true;
}
//表单提交后反回的函数,回调函数
function callback(data){
。。。回调主体。。。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
趣事情
推荐于2017-10-06 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
代码如下:
function a(callback){

var m = 1;

var n = 2;

alert(callback(m,n));

}

function b(m,n){

return m+n;

}

a(b);

执行效果,弹出数字3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式