jquery 插件學習(二)
更新時間:2012年08月06日 22:07:07 作者:
除了全局函數(shù)外,jquery中的大多數(shù)插件都是通過jquery對象的方法提供的
創(chuàng)建全局函數(shù)只需通過為jquery對象添加屬性即可,而創(chuàng)建jquery對象的方法也可以通過為jquery.fn添加屬性來實現(xiàn),實際上jquery.fn對象就是jquery.prototype原型對象的別名,使用別名更方便引用。
demo:
jQuery.fn.test = function(){
alert('這是 jquery 對象方法 ');
}
然后,就可以在任何jquery對象中調(diào)用該方法了。
$(function(){
$('h1').click(function(){
$(this).test();
});
});
由于這里,并沒有任何地方匹配dom節(jié)點,所以編寫全局函數(shù)也是可以的(上一節(jié)有講過哦),但是,在使用jquery對象方法時,函數(shù)體內(nèi)的this關鍵字總是引用當前的jquery對象,因此我們可以對上面的方法進行重寫,實現(xiàn)動態(tài)提示信息,代碼如下:
jQuery.fn.test = function(){
alert(this[0].nodeName); //提示當前jquery對象的dom節(jié)點名稱
}
重點來了,在上面的示例中,可以看到由于jquery選擇器返回的是一個數(shù)組類型的dom節(jié)點集合,this指針就指向當前這個集合,故要顯示當前元素的節(jié)點名稱,就必須在this指針后面指定當前元素的序號。
思考: 如果jquery選擇器匹配多個元素,我們該如何準確指定當前元素的對象呢?-----
要解決這個問題,我們不妨在當前jquery對象方法的環(huán)境中調(diào)用each()方法,通過隱式迭代的方式,讓this指針依次飲用每一個匹配的dom元素對象,例如,針對上一個示例做進一步的修改
jQuery.fn.test = function(){
this.each(function(){ //遍歷匹配的元素,此處的this表示對象集合
alert(this.nodeName); //提示當前jquery對象的dom節(jié)點名稱(注意這里與上面的變化哦,下標消失了)
});
}
然后,在調(diào)用方法時,就不用擔心,jquery選擇器所匹配的元素有多少了。例如在下面的例子中,當單擊不同的元素,會提示當前的節(jié)點名稱
$(function(){
$('body *').click(function(){
$(this).test();
});
});
<h1>ceshi</h1>
<a>dddddddddd</a>
<input type="button" value="test"/>
<div>div元素</div>
demo:
復制代碼 代碼如下:
jQuery.fn.test = function(){
alert('這是 jquery 對象方法 ');
}
然后,就可以在任何jquery對象中調(diào)用該方法了。
復制代碼 代碼如下:
$(function(){
$('h1').click(function(){
$(this).test();
});
});
由于這里,并沒有任何地方匹配dom節(jié)點,所以編寫全局函數(shù)也是可以的(上一節(jié)有講過哦),但是,在使用jquery對象方法時,函數(shù)體內(nèi)的this關鍵字總是引用當前的jquery對象,因此我們可以對上面的方法進行重寫,實現(xiàn)動態(tài)提示信息,代碼如下:
復制代碼 代碼如下:
jQuery.fn.test = function(){
alert(this[0].nodeName); //提示當前jquery對象的dom節(jié)點名稱
}
重點來了,在上面的示例中,可以看到由于jquery選擇器返回的是一個數(shù)組類型的dom節(jié)點集合,this指針就指向當前這個集合,故要顯示當前元素的節(jié)點名稱,就必須在this指針后面指定當前元素的序號。
思考: 如果jquery選擇器匹配多個元素,我們該如何準確指定當前元素的對象呢?-----
要解決這個問題,我們不妨在當前jquery對象方法的環(huán)境中調(diào)用each()方法,通過隱式迭代的方式,讓this指針依次飲用每一個匹配的dom元素對象,例如,針對上一個示例做進一步的修改
復制代碼 代碼如下:
jQuery.fn.test = function(){
this.each(function(){ //遍歷匹配的元素,此處的this表示對象集合
alert(this.nodeName); //提示當前jquery對象的dom節(jié)點名稱(注意這里與上面的變化哦,下標消失了)
});
}
然后,在調(diào)用方法時,就不用擔心,jquery選擇器所匹配的元素有多少了。例如在下面的例子中,當單擊不同的元素,會提示當前的節(jié)點名稱
復制代碼 代碼如下:
$(function(){
$('body *').click(function(){
$(this).test();
});
});
復制代碼 代碼如下:
<h1>ceshi</h1>
<a>dddddddddd</a>
<input type="button" value="test"/>
<div>div元素</div>
相關文章
JQuery和HTML5 Canvas實現(xiàn)彈幕效果
這篇文章主要介紹了JQuery和HTML5 Canvas兩種方法實現(xiàn)彈幕效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01ie8模式下click無反應點擊option無反應的解決方法
點擊select里面的option,將其賦值到上面的input,直接用jQuery寫的,問題是在用IE8打開的時候,點擊option沒有任何反應2014-10-10選擇TreeView控件的樹狀數(shù)據(jù)節(jié)點的JS方法(jquery)
前些日子為了提高人性化選擇樹狀權(quán)限的功能,根據(jù)樹的結(jié)構(gòu)用jquery寫了個方法。2010-02-02jQuery實現(xiàn)響應鼠標背景變化的動態(tài)菜單效果代碼
這篇文章主要介紹了jQuery實現(xiàn)響應鼠標背景變化的動態(tài)菜單效果代碼,涉及jquery鼠標mouseover事件操作頁面元素屬性的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08