jQuery的$.proxy()应用示例介绍


Posted in Javascript onApril 03, 2014

今天在看<<锋利的jQuery>>时看到了proxy()的使用,感觉很模糊,就到处找资料.

jQuery的$.proxy()应用示例介绍 

jQuery的源码也没看明白.

不过总算明白了proxy的用法了;

<input type="button" value="测试" id="guoBtn" name="我是按钮的name"/>

var obj = { 
name: "我是obj的name", 
sayName: function () { 
alert(this.name); 
} 
} 
$("#guoBtn").click(obj.sayName); //我是按钮的name 
// 如果我想访问obj的name怎么办呢? 
$("#guoBtn").click($.proxy(obj.sayName,obj));//"我是obj的name" 
$("#guoBtn").click($.proxy(obj, "sayName")); //"我是obj的name"

从上面proxy(a,b)的用法可以看出他的参数有两种写法.

第一种:a是一个function函数,b是这个函数的对象所有者.

第二种:a是一个对象,b是一个字符串,是a的属性名.

还有这个实例就是<<锋利的jQuery>>上的一个例子了.

<div id="panel" style="display:none;"> 
<button>Close</button> 
</div>

$("#panel").fadeIn(function () { 
$("#panel button").click(function () { 
$(this).fadeOut(); 
}); 
});

button虽然消失了,但是panel却没有消失.可以使用proxy来解决这个问题.

$("#panel").fadeIn(function () { 
var obj = this; 
$("#panel button").click($.proxy(function () { 
$(this).fadeOut(); 
}, obj)); 
});

这样单击按钮之后,panel才会消失.

个人感觉proxy最主要就是用来修改函数执行时的上下文对象的.

是在apply的基础上做的封装,所以说proxy就是我们jQuery自己的apply.

Javascript 相关文章推荐
IE bug table元素的innerHTML
Jan 11 Javascript
基于jQuery的树控件实现代码(asp.net+json)
Jul 11 Javascript
javascript学习基础笔记之DOM对象操作
Nov 03 Javascript
jquery中通过父级查找进行定位示例
Jun 28 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
node.js中的fs.fstat方法使用说明
Dec 15 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
mui back 返回刷新页面的实例
Dec 06 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
Jun 25 Javascript
用JS实现一个简单的打砖块游戏
Dec 11 Javascript
js实现的复制兼容chrome和IE
Apr 03 #Javascript
JS实现局部选择打印和局部不选择打印
Apr 03 #Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 #Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 #Javascript
使用jQuery动态加载js脚本文件的方法
Apr 03 #Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
Apr 03 #Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 #Javascript
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
PHP类型约束用法示例
2016/09/28 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
PHP实现简单日历类编写
2020/08/28 PHP
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
学习python的几条建议分享
2013/02/10 Python
python实现泊松图像融合
2018/07/26 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
python实现简单日期工具类
2019/04/24 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
《开国大典》教学反思
2014/04/19 职场文书
安全环保演讲稿
2014/08/28 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
工伤调解协议书
2016/03/21 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
Java死锁的排查
2022/05/11 Java/Android