【转】个人对JQuery Proxy()函数的理解
2016-06-01 10:14
393 查看
原文地址:http://www.cnblogs.com/acles/archive/2012/11/20/2779282.html
JQuery.proxy(function,context):
使用context代替function中的context。
比如:
var you = {
type: "person",
test: function(event) {
$("#log").append( this.type + " " );
}
$("#test").click(you.test);调用这句只有相当于调用:
$("#test").click(function(event){
$("#log").append( this.type + " " );
});
所以这里的this指的是$("#test").
如果这样调用:$("#test").click($.proxy(you.test,you));
此时的调用相当于:
$("#test").click(function(event){
$("#log").append( you.type + " " );
});
虽然调用事件的对象是$("#test"),但是却可以使用$.proxy把事件执行内的对象改变为you。
JQuery.proxy(context,functionname):
第一个参数是你想proxy的对象,第二个参数为要改变的函数的名字。
var obj = {
name: "John",
test: function() {
$("#log").append( this.name );
$("#test").unbind("click", obj.test);
}
};
$("#test").click( jQuery.proxy( obj, "test" ) ); 把obj作为context传入test中,而不是$("#test").
这个执行完之后,结果会是John,
如果使用下面这句
$("#test").click(obj.test);
结果会是$("#test").的name值。
这个函数和上面的那个函数的功能一样,就是使用了更加简洁的方式。
================================================
jQuery.proxy(),接受一个函数,然后返回一个新函数,并且这个新函数始终保持了特定的上下文(context )语境。
context函数的上下文语境(`this`)会被设置成这个 object 对象。
name将要改变上下文语境的函数名(这个函数必须是前一个参数 ‘context’ 对象的属性)
这个方法通常在向一个元素上附加事件处理函数时,上下文语境实际是指向另一个对象的情况下使用。
另外,jQuery 能够确保即使你绑定的函数是经过 jQuery.proxy() 处理过的函数,你依然可以用原先的函数来正确地取消绑定。
参考资料:
http://blog.163.com/rex_blog/blog/static/1944801012013611101725100/
JQuery.proxy(function,context):
使用context代替function中的context。
比如:
var you = {
type: "person",
test: function(event) {
$("#log").append( this.type + " " );
}
$("#test").click(you.test);调用这句只有相当于调用:
$("#test").click(function(event){
$("#log").append( this.type + " " );
});
所以这里的this指的是$("#test").
如果这样调用:$("#test").click($.proxy(you.test,you));
此时的调用相当于:
$("#test").click(function(event){
$("#log").append( you.type + " " );
});
虽然调用事件的对象是$("#test"),但是却可以使用$.proxy把事件执行内的对象改变为you。
JQuery.proxy(context,functionname):
第一个参数是你想proxy的对象,第二个参数为要改变的函数的名字。
var obj = {
name: "John",
test: function() {
$("#log").append( this.name );
$("#test").unbind("click", obj.test);
}
};
$("#test").click( jQuery.proxy( obj, "test" ) ); 把obj作为context传入test中,而不是$("#test").
这个执行完之后,结果会是John,
如果使用下面这句
$("#test").click(obj.test);
结果会是$("#test").的name值。
这个函数和上面的那个函数的功能一样,就是使用了更加简洁的方式。
================================================
jQuery.proxy(),接受一个函数,然后返回一个新函数,并且这个新函数始终保持了特定的上下文(context )语境。
jQuery.proxy( function, context )
function将要改变上下文语境的函数。context函数的上下文语境(`this`)会被设置成这个 object 对象。
jQuery.proxy( context, name )
context函数的上下文语境会被设置成这个 object 对象。name将要改变上下文语境的函数名(这个函数必须是前一个参数 ‘context’ 对象的属性)
这个方法通常在向一个元素上附加事件处理函数时,上下文语境实际是指向另一个对象的情况下使用。
另外,jQuery 能够确保即使你绑定的函数是经过 jQuery.proxy() 处理过的函数,你依然可以用原先的函数来正确地取消绑定。
参考资料:
http://blog.163.com/rex_blog/blog/static/1944801012013611101725100/
相关文章推荐
- jquery 将当前时间转换成yyyymmdd格式的实现方法
- jQuery中bind,live,delegate,on绑定事件的方式与区别
- 在javaweb中的jquery ajax中的traditional
- jQuery 动画特效show() hide() slideUp() slideDown() fadeIn() fadeOut() animate() stop() delay()
- nano.js jqueryhtml模板
- 优秀jQuery插件整理!
- python开发学习-day14(jquery、ajax等)
- 常用jquery片断
- jQuery基础知识点总结(DOM操作)
- JQuery记住用户名和密码的具体实现
- jQuery基础知识点(DOM操作)
- jQuery Validate 使用
- jquery高级应用之Deferred对象
- Jquery加载默认值
- JQuery学习(二)
- 解决jQuery库与其他js库的冲突
- jQuery对象与DOM对象
- jQuery实现出发某按钮的click事件
- 九宫格抽奖停止位置的设置
- jQuery中get与eq的区别