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 相关文章推荐
js操作二级联动实现代码
Jul 27 Javascript
js获取URL的参数的方法(getQueryString)示例
Sep 29 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
javascript中call apply 的应用场景
Apr 16 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
用js实现放大镜的效果的简单实例
May 23 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
May 25 Javascript
node.js实现快速截图
Aug 27 Javascript
js实现楼层导航功能
Feb 23 Javascript
zTree树形插件异步加载方法详解
Jun 14 Javascript
vue mixins组件复用的几种方式(小结)
Sep 06 Javascript
JavaScript实现外溢动态爱心的效果的示例代码
Mar 21 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
php生成随机数或者字符串的代码
2008/09/05 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
python求pi的方法
2014/10/08 Python
详解Python中的join()函数的用法
2015/04/07 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python实现股市信息下载的方法
2015/06/15 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
消防战士优秀事迹材料
2014/02/13 职场文书
逃课上网检讨书
2014/02/20 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技
解决Redis启动警告问题
2022/02/24 Redis