javascript回调函数中如何传参?

我包装了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)显然都不行,如之奈何?求助~~~

潇湘沐
浏览 733回答 3
3回答

慕田峪9158850

代码如下:function a(callback){var m = 1;var n = 2;alert(callback(m,n));}function b(m,n){return m+n;}a(b);执行效果,弹出数字3

SMILET

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的后缀名去掉了,免得审核不过,你加下。测试过没有问题。

郎朗坤

给你看看我写的吧。我的是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' attributedataType: 'json' // 'xml', 'script', or 'json' (expected server response type)};$('#frm_add').ajaxSubmit(options);}//验证表单函数function checkinput(){。。。。验证主体。。。。return true;}//表单提交后反回的函数,回调函数function callback(data){。。。回调主体。。。}
打开App,查看更多内容
随时随地看视频慕课网APP