让回调函数 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 相关文章推荐
JQuery 学习笔记 element属性控制
Jul 23 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
聊一聊JS中的prototype
Sep 29 Javascript
简单模拟node.js中require的加载机制
Oct 27 Javascript
深入学习 JavaScript中的函数调用
Mar 23 Javascript
微信小程序实现根据字母选择城市功能
Aug 16 Javascript
vue综合组件间的通信详解
Nov 06 Javascript
vue-cli 首屏加载优化问题
Nov 06 Javascript
javascript+HTML5 canvas绘制时钟功能示例
May 15 Javascript
Vue双向数据绑定(MVVM)的原理
Oct 03 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实现把数字ID转字母ID
2013/08/12 PHP
php实现两个数组相加的方法
2015/02/17 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
Python高效编程技巧
2013/01/07 Python
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
如何利用python生成MD5并去重
2020/12/07 Python
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
物理教师自荐信范文
2013/12/28 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
店长岗位职责
2015/02/11 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
mysql知识点整理
2021/04/05 MySQL