怎么调运ajax传送的值,AJAX_ajax回调函数参数传递正确方法,属性方法是可以带参数: 复制 - phpStudy...

ajax回调函数参数传递正确方法

属性方法是可以带参数:

function ClassX(name) {

this.name = name;

ClassX.prototype.show = function (param) {

alert(this.name + " " + param);

};

}

var o = new ClassX("name");

o.show("param");//name param

但是,上面是虽然是直接在函数签名中定义了参考,如果不是自己调用o.show('param')时,而是通过其他函数回调传入时,就不一定好使了,因为别人在调用此方法时不一定给你传入此参,比如在使用ajax时

request.onreadystatechange=function(param){...}

request.onreadystatechange=callBack;function callBack(param){...}

时就不好使了,因为此时ajax根本就没有给你传递param参数,正确做法形如:

//request.onreadystatechange = orgEval;//错误作法

//request.onreadystatechange = function (request, pOrgName) {//错误作法

// orgEval(request, pOrgName);

//};

//...

request.onreadystatechange = function () {//正确作法

orgEval(request, pOrgName);//在匿名函数内调用回调实现,并直接传入参数,这里用到了JavaScript的闭包性质

};

//...

function orgEval(req, orgName){

//...

}

这样通过在匿名函数内调用回调实现函数,并且直接传入参数即可。

ajax传递参数给onreadystatechange的回调函数

这几天开始学习ajax,其中自己做试验页面时有了传参数给XMLHttpRequest.onreadystatechange的回调函数这个需求。如是baidu了下,发现说到这个的人不少啊。搜来的办法大概是这样:

xmlHttp.onreadystatechange=function(){callback(a,b);};

其中就传递了a和b两个参数。

后来我又自己发现了个方法,方法知道的人肯定很多,不过我在baidu上没搜到,这里就写出来,推广下咯。

xmlHttp.a=a;

xmlHttp.b=b;

xmlHttp.onreadystatechange=callback;

.

.

function callback()

{

if(this.readyState==4)

{

a=this.a;

b=this.b;

.

}

}

也就是给xmlHttp对象增加两个属性,在回调函数中直接用this调用那两个属性。

另外说点自己的小经验,xmlHttp最好要写成全局变量,我一开始发现总有些请求没达到目的。后来才发现是把xmlHttp写在了一个函数里面,当那个函数运行完了,xmlHttp生命周期也结束了。这样有些请求在生命周期结束之前就实现了,而有些请求就没了。相关阅读:

正则表达式中不区分大小写的写法

jquery easyui combox一些实用的小方法

在Java内存模型中测试并发程序代码

Win8.1系统更新Flash后网页经常出现错误提示的故障分析及解决方法

AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法

Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

php递归删除指定文件夹的方法小结

PHP+jQuery 注册模块开发详解

php中使用getimagesize获取图片、flash等文件的尺寸信息实例

win7系统桌面自动产生Thumbs.Db缓存文件禁止方法

jQuery实现仿美橙互联两级导航菜单的方法

php实现在线通讯录功能(附源码)

asp.net中TextBox只能输入数字的最简洁的两种方法

Win8完全卸载自带的metro应用技巧(三思而后行)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值