JQuery1.6 使用方法三


Posted in Javascript onNovember 23, 2011

a={id:1,get:function(){alert(this.id)}}

$("#test").click(a.get)//这时候所指的id就不是1,而是test

如果想要得到的是1,那就必须改变上下文环境$.

$.proxy()的作用就是改变当前上下文环境。

$("#test").click($.proxy(a,"get"))

$("#test").click($.proxy(a.get,a))

proxy: function( fn, context ) {//改变函数上下文环境,this指向设置的对象

这里的参数可以有两种方式:函数fn fn的方法context

 函数的方法fn[context] 函数fn
if ( typeof context === "string" ) {//如果content是字符串,那么会认为是fn的一个方法 fn[ context ],并在接下来判断是否是函数
var tmp = fn[ context ];
context = fn;
fn = tmp;
}
if ( !jQuery.isFunction( fn ) ) {//不是函数立刻返回undefined
return undefined;
}
var args = slice.call( arguments, 2 ),//把fn,content后面的参数作为要执行的函数参数
proxy = function() {
return fn.apply( context, args.concat( slice.call( arguments ) ) );//返回设置了指定上下文环境的可执行函数,fn为可执行行数,把this指向content,args.concat( slice.call( arguments ) )作为参数,
};
proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;//一个全局的计数器,用于标识该函数可以用来删除
return proxy;
},
//access这个方法主要是在jquery内部使用,用于attr,prop,css;主要设置DOM组(jquery对象)单个或者多个属性、样式的值,获取DOM组(jquery对象)某个属性、样式的值
//elems操作的对象组,key属性,value属性值,exec默认true,fn用来操作的函数,pass主要在attr的时候设置val,css,html,text,data,width,height,offset的时候应该为true.
access: function( elems, key, value, exec, fn, pass ) {
var length = elems.length;
//设置多个属性
if ( typeof key === "object" ) {//如果属性值是对象,将循环设置dom组(jquery对象)的属性和对应的值
for ( var k in key ) {
jQuery.access( elems, k, key[k], exec, fn, value );
}
return elems;//返回结果
}
// 设置单个属性
if ( value !== undefined ) {//如果value存在,设置某个属性,可以是一组对象或者单个;如果不存在,即获取doms[0](jquery对象)某个属性值,只能返回带一个对象,或者由于对象不存在直接返回undefiend;
exec = !pass && exec && jQuery.isFunction(value);//目前jquery默认pass为空null,exec为true,value是否为函数
for ( var i = 0; i < length; i++ ) {
fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );//如果exec为true,,传入操作对象的序列和操作属性值作为参数,否则,设置属性key的值为value
}
return elems;
}
// 获取属性
return length ? fn( elems[0], key ) : undefined;
},
now: function() {//返回当前时间
return (new Date()).getTime();
},

Javascript 相关文章推荐
JQuery 表单中textarea字数限制实现代码
Dec 07 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
May 10 Javascript
IE下JS读取xml文件示例代码
Aug 05 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
Jan 18 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
基于WebUploader的文件上传js插件
Aug 19 Javascript
angularjs定时任务的设置与清除示例
Jun 02 Javascript
JavaScript之DOM_动力节点Java学院整理
Jul 03 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
简述vue中的config配置
Jan 23 Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
jQuery1.6 使用方法二
Nov 23 #Javascript
jQuery1.6 使用方法一
Nov 23 #Javascript
JS 表单验证大全
Nov 23 #Javascript
JavaScript中的16进制字符(改进)
Nov 21 #Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 #Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 #Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 #Javascript
You might like
PHP系统流量分析的程序
2006/10/09 PHP
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
浅谈PHP中的
2016/04/23 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
Python解惑之True和False详解
2017/04/24 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
迟到检讨书大全
2014/01/25 职场文书
简历自我评价模版
2014/01/31 职场文书
后备干部培训方案
2014/05/22 职场文书
求职简历自我评价2015
2015/03/10 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
市级三好生竞选稿
2015/11/21 职场文书
2015元旦感言
2015/12/09 职场文书
倡议书怎么写?
2019/04/11 职场文书
Python进行区间取值案例讲解
2021/08/02 Python