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 相关文章推荐
tbody元素支持嵌套的注意方法
Mar 24 Javascript
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
javascript使用onclick事件改变选中行的颜色
Dec 30 Javascript
node.js中的buffer.fill方法使用说明
Dec 14 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 Javascript
jQuery实现磁力图片跟随效果完整示例
Sep 16 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
Dec 07 Javascript
详解使用vuex进行菜单管理
Dec 21 Javascript
详解VueJs中的V-bind指令
May 03 Javascript
微信小程序绘制图片发送朋友圈
Jul 25 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
Aug 27 Javascript
JS实现鼠标按下拖拽效果
Jul 23 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 定义404页面的实现代码
2012/11/19 PHP
php学习笔记之基础知识
2014/11/08 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python映射列表实例分析
2015/01/26 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
django框架自定义用户表操作示例
2018/08/07 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
《王二小》教学反思
2014/02/27 职场文书
政治表现评语
2014/05/04 职场文书
长城导游词300字
2015/01/30 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android