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 相关文章推荐
JavaScript创建一个欢迎cookie弹出窗实现代码
Mar 15 Javascript
js如何判断用户是在PC端和还是移动端访问
Apr 24 Javascript
JQuery复制DOM节点的方法
Jun 11 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 Javascript
js实现拖拽效果(构造函数)
Dec 14 Javascript
基于javascript实现最简单的选项卡切换效果
May 16 Javascript
jQuery表单事件实例代码分享
Aug 18 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
Apr 13 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
Sep 01 Javascript
Node.js中的不安全跳转如何防御详解
Oct 21 Javascript
微信小程序实现上传多个文件 超过10个
Mar 30 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
javascript 面向对象编程 function也是类
2009/09/17 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
js电话号码验证方法
2015/09/28 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
进一步了解Python中的XML 工具
2015/04/13 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
美国美妆网站:B-Glowing
2016/10/12 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
保护环境建议书300字
2014/05/13 职场文书
护士节策划方案
2014/05/19 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
安全员岗位职责范本
2015/04/11 职场文书
钢琴师观后感
2015/06/12 职场文书
施工安全协议书
2016/03/22 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
八年级作文之友情
2019/11/25 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫
JS实现九宫格拼图游戏
2022/06/28 Javascript