让回调函数 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 相关文章推荐
完整显示当前日期和时间的JS代码
Sep 17 Javascript
js监听表单value的修改同步问题,跨浏览器支持
Dec 31 Javascript
js拦截alert对话框另类应用
Jan 16 Javascript
js 文本滚动效果的实例代码
Aug 17 Javascript
Jquery实现的角色左右选择特效
May 21 Javascript
jQuery中element选择器用法实例
Dec 29 Javascript
通过设置CSS中的position属性来固定层的位置
Dec 14 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
js实现漫天星星效果
Jan 19 Javascript
React-router 4 按需加载的实现方式及原理详解
May 25 Javascript
prototype.js简单实现ajax功能示例
Oct 18 Javascript
解决layui的input独占一行的问题
Sep 10 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 Ubb代码编辑器函数代码
2012/07/05 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
jquery 无限级联菜单案例分享
2013/03/26 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
简单谈谈python的反射机制
2016/06/28 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
python groupby 函数 as_index详解
2019/12/16 Python
python实现局域网内实时通信代码
2019/12/22 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
Python datetime模块的使用示例
2021/02/02 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
什么是方法的重载
2013/06/24 面试题
函授毕业生自我鉴定
2013/11/06 职场文书
教师自我反思材料
2014/02/14 职场文书
中秋手机店促销方案
2014/06/16 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
人事主管岗位职责
2015/02/04 职场文书
环保宣传语大全
2015/07/13 职场文书
暑假生活随笔
2015/08/15 职场文书
《赵州桥》教学反思
2016/02/17 职场文书