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 相关文章推荐
收集的网上用的ajax之chat.js文件
Apr 08 Javascript
js 弹出框 替代浏览器的弹出框
Oct 29 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
JQuery+DIV自定义滚动条样式的具体实现
Jun 25 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
Bootstrap每天必学之导航
Nov 26 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 Javascript
原生javascript实现的全屏滚动功能示例
Sep 19 Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 Javascript
原生js实现简单轮播图
Oct 26 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合并数组中相同元素的方法
2014/11/13 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
JS分页效果示例
2013/10/11 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
JS重载实现方法分析
2016/12/16 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
python实现RSA加密(解密)算法
2016/02/17 Python
Python的requests网络编程包使用教程
2016/07/11 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python中的for循环
2018/09/28 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
Ajax的优点和缺点
2014/11/21 面试题
合作协议书范文
2014/08/20 职场文书
镇创先争优活动总结
2014/08/28 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
仲裁协议书
2014/09/26 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
教师节领导致辞
2015/07/29 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书