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


Posted in Javascript onAugust 13, 2007

function demo(){
var url="ajaxdemo.asp";
var paras = "" ;
var myAjax = new 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 = new 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 = new 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这么简单了。

Javascript 相关文章推荐
利用json获取字符出现次数的代码
Mar 22 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
JavaScript输出当前时间Unix时间戳的方法
Apr 06 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
Mar 02 Javascript
JS实现的添加弹出层并完成锁屏操作示例
Apr 07 Javascript
解决webpack打包速度慢的解决办法汇总
Jul 06 Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
微信小程序多音频播放进度条问题
Aug 28 Javascript
JQueryDOM之样式操作
Mar 27 jQuery
Node.js 深度调试方法解析
Jul 28 Javascript
手把手教你如何编译打包video.js
Dec 09 Javascript
JS中如何优雅的使用async await详解
Oct 05 Javascript
分析 JavaScript 中令人困惑的变量赋值
Aug 13 #Javascript
IE/FireFox具备兼容性的拖动代码
Aug 13 #Javascript
JavaScript 编程引入命名空间的方法与代码
Aug 13 #Javascript
权威JavaScript 中的内存泄露模式
Aug 13 #Javascript
封装好的省市地区联动控件附下载
Aug 13 #Javascript
分享别人写的一个小型js框架
Aug 13 #Javascript
javascript下查找父节点的简单方法
Aug 13 #Javascript
You might like
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
php基础学习之变量的使用
2011/06/09 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
PHP 无限级分类
2017/05/04 PHP
批量实现面向对象的实例代码
2013/07/01 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
python测试驱动开发实例
2014/10/08 Python
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
使用Python进行目录的对比方法
2018/11/01 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
python交互界面的退出方法
2019/02/16 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
大学生求职简历的自我评价
2013/10/14 职场文书
施工安全协议书
2013/12/11 职场文书
师范大学生求职信
2014/06/13 职场文书
毕业证委托书范文
2014/09/26 职场文书
2015年科协工作总结
2015/05/19 职场文书
2015年度女工工作总结
2015/10/22 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
通过Python把学姐照片做成拼图游戏
2022/02/15 Python
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript