JQuery1.6 使用方法三
$("#test").click(a.get)//這時(shí)候所指的id就不是1,而是test
如果想要得到的是1,那就必須改變上下文環(huán)境$.
$.proxy()的作用就是改變當(dāng)前上下文環(huán)境。
$("#test").click($.proxy(a,"get"))
$("#test").click($.proxy(a.get,a))
proxy: function( fn, context ) {//改變函數(shù)上下文環(huán)境,this指向設(shè)置的對(duì)象
這里的參數(shù)可以有兩種方式:函數(shù)fn fn的方法context
函數(shù)的方法fn[context] 函數(shù)fn
if ( typeof context === "string" ) {//如果content是字符串,那么會(huì)認(rèn)為是fn的一個(gè)方法 fn[ context ],并在接下來判斷是否是函數(shù)
var tmp = fn[ context ];
context = fn;
fn = tmp;
}
if ( !jQuery.isFunction( fn ) ) {//不是函數(shù)立刻返回undefined
return undefined;
}
var args = slice.call( arguments, 2 ),//把fn,content后面的參數(shù)作為要執(zhí)行的函數(shù)參數(shù)
proxy = function() {
return fn.apply( context, args.concat( slice.call( arguments ) ) );//返回設(shè)置了指定上下文環(huán)境的可執(zhí)行函數(shù),fn為可執(zhí)行行數(shù),把this指向content,args.concat( slice.call( arguments ) )作為參數(shù),
};
proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;//一個(gè)全局的計(jì)數(shù)器,用于標(biāo)識(shí)該函數(shù)可以用來刪除
return proxy;
},
//access這個(gè)方法主要是在jquery內(nèi)部使用,用于attr,prop,css;主要設(shè)置DOM組(jquery對(duì)象)單個(gè)或者多個(gè)屬性、樣式的值,獲取DOM組(jquery對(duì)象)某個(gè)屬性、樣式的值
//elems操作的對(duì)象組,key屬性,value屬性值,exec默認(rèn)true,fn用來操作的函數(shù),pass主要在attr的時(shí)候設(shè)置val,css,html,text,data,width,height,offset的時(shí)候應(yīng)該為true.
access: function( elems, key, value, exec, fn, pass ) {
var length = elems.length;
//設(shè)置多個(gè)屬性
if ( typeof key === "object" ) {//如果屬性值是對(duì)象,將循環(huán)設(shè)置dom組(jquery對(duì)象)的屬性和對(duì)應(yīng)的值
for ( var k in key ) {
jQuery.access( elems, k, key[k], exec, fn, value );
}
return elems;//返回結(jié)果
}
// 設(shè)置單個(gè)屬性
if ( value !== undefined ) {//如果value存在,設(shè)置某個(gè)屬性,可以是一組對(duì)象或者單個(gè);如果不存在,即獲取doms[0](jquery對(duì)象)某個(gè)屬性值,只能返回帶一個(gè)對(duì)象,或者由于對(duì)象不存在直接返回undefiend;
exec = !pass && exec && jQuery.isFunction(value);//目前jquery默認(rèn)pass為空null,exec為true,value是否為函數(shù)
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,,傳入操作對(duì)象的序列和操作屬性值作為參數(shù),否則,設(shè)置屬性key的值為value
}
return elems;
}
// 獲取屬性
return length ? fn( elems[0], key ) : undefined;
},
now: function() {//返回當(dāng)前時(shí)間
return (new Date()).getTime();
},
相關(guān)文章
jQuery 1.2.x 升級(jí) 1.3.x 注意事項(xiàng)
2009-05-05實(shí)例詳解jQuery結(jié)合GridView控件的使用方法
這篇文章主要以實(shí)例的方式詳細(xì)介紹了jQuery結(jié)合GridView控件的使用方法,感興趣的小伙伴們可以參考一下2016-01-01Jquery 綁定時(shí)間實(shí)現(xiàn)代碼
jquery 顯示本地時(shí)間/ 帶日期、星期/ UTC,需要的朋友可以參考下。2011-05-05jQuery、layer實(shí)現(xiàn)彈出層的打開、關(guān)閉功能
這篇文章主要介紹了jQuery、layer實(shí)現(xiàn)彈出層的打開、關(guān)閉功能,需要的朋友可以參考下2017-06-06讓jQuery與其他JavaScript庫(kù)并存避免沖突的方法
為了解決jQuery和其他JavaScript庫(kù)中$()函數(shù)的沖突,需要取消jQuery的$()函數(shù),下面有個(gè)不錯(cuò)的方法,感興趣的朋友可以參考下2013-12-12jquery 與NVelocity 產(chǎn)生沖突的解決方法
有時(shí)候使用jquery 與NVelocity的時(shí)候,會(huì)產(chǎn)生沖突,下面是具體的解決方法,需要的朋友可以參考下。2011-06-06Jquery each方法跳出循環(huán),并獲取返回值(實(shí)例講解)
這篇文章主要是對(duì)Jquery each方法跳出循環(huán),并獲取返回值進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12jQuery中[attribute=value]選擇器用法實(shí)例
這篇文章主要介紹了jQuery中[attribute=value]選擇器用法,實(shí)例分析了[attribute=value]選擇器的功能、定義及給定屬性及屬性值元素的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12jquery ready()的幾種實(shí)現(xiàn)方法小結(jié)
下面是目前本人知道的幾種jQuery的ready ()的寫法.如果還有其他的寫法,望告知2010-06-06