jQuery插件制作之全局函數(shù)用法實(shí)例
本文實(shí)例講述了jQuery插件制作之全局函數(shù)用法。分享給大家供大家參考。具體分析如下:
1、添加新的全局函數(shù)
所謂的全局函數(shù),實(shí)際上就是jQuery對(duì)象的方法,但從實(shí)踐的角度上看,他們是位于jQuery命名空間內(nèi)部的函數(shù)
(1)添加一個(gè)函數(shù),只需要將新函數(shù)指定為jQuery對(duì)象的一個(gè)屬性。
jQuery.five =function(){
alert("直接繼承方式不一樣");
}
調(diào)用:
(2)添加多個(gè)函數(shù)
jQuery.five =function(){
alert("直接繼承方式不一樣");
}
jQuery.six =function(){
alert("直接繼承方式不一樣2");
}
調(diào)用:
以上的方法會(huì)面臨命名空間沖突的風(fēng)險(xiǎn),為避免這個(gè)問(wèn)題,最好把屬于這個(gè)插件的所有全局函數(shù),都封裝到一個(gè)對(duì)象中,如下:
//命名空間繼承
jQuery.myPlugin ={
one : function(obj){
var object = obj;
var id = object.attr("id");
alert(id);
},
two : function(){
alert(22);
}
}
這樣其實(shí)是為全局函數(shù)創(chuàng)建了另一個(gè)命名空間:jQuery.myPlugin.
2、添加jQuery對(duì)象方法
jQuery中大多數(shù)內(nèi)置的功能都是通過(guò)其對(duì)象的方法提供的。
jQuery.fn.myMethod= function(){
alert(11);
}
調(diào)用:
注意:jQuery.fn是jQuery.prototype的別名。
實(shí)例:以下是行為不正確的方法
<ul> <li>11111111111111111111111111</li> <liclass="this">22222222222222222222</li> <li>333333333333333</li> <liclass="that">44444444444444444</li> <liclass="this">55555555555555</li> <li>6666666666666666</li> <li>777777777777777777</li> <liclass="that">777777777777777777</li> </ul> <inputtype="button" value="swap" id="swap" />
jQuery.fn.swapClass= function(class1,class2){
if(this.hasClass(class1)){
this.removeClass(class1).addClass(class2);
}
if(this.hasClass(class2)){
this.removeClass(class2).addClass(class1);
}
}
$("#swap").click(function(){
$("li").swapClass("this","that");
return false;
})
全部li都是用了that樣式。
(1)隱士迭代
要在無(wú)論匹配多個(gè)元素的情況下都保證行為的正確,最簡(jiǎn)單的方法是始終在方法的環(huán)境上調(diào)用.each()方法,這樣就會(huì)
執(zhí)行隱士迭代,而執(zhí)行隱士迭代對(duì)于維護(hù)插件和內(nèi)置方法的一致性是至關(guān)重要的,在調(diào)用的.each()方法內(nèi)部,this
依次引用的是每個(gè)DOM元素.以上代碼修改為:
jQuery.fn.swapClass= function(class1,class2){
this.each(function(){
var $element = jQuery(this);
if($element.hasClass(class1)){
$element.removeClass(class1).addClass(class2);
}else if($element.hasClass(class2)){
$element.removeClass(class2).addClass(class1);
}
})
}
調(diào)用:
(2)方法的連綴
要使用方法的連綴,必須在所有的插件方法中返回一個(gè)jQuery對(duì)象。返回的jQuery對(duì)象通常就是this所引用的對(duì)象。
jQuery.fn.swapClass= function(class1,class2){
return this.each(function(){
var $element = jQuery(this);
if($element.hasClass(class1)){
$element.removeClass(class1).addClass(class2);
}else if($element.hasClass(class2)){
$element.removeClass(class2).addClass(class1);
}
})
}
調(diào)用:
3、添加新的簡(jiǎn)寫(xiě)方法
//添加新的簡(jiǎn)寫(xiě)方法
jQuery.fn.slideFadeOut= function(speed,callback){
return this.animate({
height : "hide",
opacity : "hide"
},speed,callback)
}
jQuery.fn.slideFadeIn= function(speed,callback){
return this.animate({
height : "show",
opacity : "show"
},speed,callback)
}
jQuery.fn.slideFadeToggle= function(speed,callback){
return this.animate({
height : "toggle",
opacity : "toggle"
},speed,callback)
}
希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。
- jquery插件制作 手風(fēng)琴Panel效果實(shí)現(xiàn)
- jquery插件制作 圖片走廊 gallery
- jquery插件制作 表單驗(yàn)證實(shí)現(xiàn)代碼
- 一個(gè)簡(jiǎn)單的jQuery插件制作 學(xué)習(xí)過(guò)程及實(shí)例
- jquery tab插件制作實(shí)現(xiàn)代碼
- jquery插件制作 提示框插件實(shí)現(xiàn)代碼
- jQuery焦點(diǎn)圖切換簡(jiǎn)易插件制作過(guò)程全紀(jì)錄
- 基于jquery插件制作左右按鈕與標(biāo)題文字圖片切換效果
- jquery插件制作 自增長(zhǎng)輸入框?qū)崿F(xiàn)代碼
- jQuery插件制作的實(shí)例教程
相關(guān)文章
jquery實(shí)現(xiàn)可旋轉(zhuǎn)可拖拽的文字效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)可旋轉(zhuǎn)可拖拽的文字效果代碼,涉及jquery響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-01-01
jquery插件之easing 動(dòng)態(tài)菜單
jQuery Easing Plugin 是一個(gè)簡(jiǎn)單的為對(duì)象擴(kuò)展高級(jí)屬性和選項(xiàng)的jQuery插件。2010-08-08
jquery 跨域訪問(wèn)問(wèn)題解決方法(筆記)
對(duì)于js跨域訪問(wèn),在先前也曾碰到過(guò),但可能并沒(méi)有認(rèn)真去對(duì)待,可能查看過(guò)相關(guān)資料,但當(dāng)著兩天再次碰到這個(gè)問(wèn)題時(shí),走了不少?gòu)澛凡耪业絾?wèn)題原因。記下這次解決過(guò)程,為自己不再?gòu)?qiáng)大的記憶力默哀一下。2011-06-06
基于jquery實(shí)現(xiàn)五星好評(píng)
這篇文章主要為大家詳細(xì)介紹了基于jquery實(shí)現(xiàn)五星好評(píng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
選擇TreeView控件的樹(shù)狀數(shù)據(jù)節(jié)點(diǎn)的JS方法(jquery)
前些日子為了提高人性化選擇樹(shù)狀權(quán)限的功能,根據(jù)樹(shù)的結(jié)構(gòu)用jquery寫(xiě)了個(gè)方法。2010-02-02
以WordPress為例講解jQuery美化頁(yè)面Title的方法
鼠標(biāo)移動(dòng)到超鏈接時(shí)顯示Title提示即是所謂Title美化的一般手段,這里我們就以WordPress為例講解jQuery美化頁(yè)面Title的方法,需要的朋友可以參考下2016-05-05
Jquery 改變r(jià)adio/checkbox選中狀態(tài),獲取選中的值(示例代碼)
這篇文章主要介紹了Jquery 改變r(jià)adio/checkbox選中狀態(tài),獲取選中的值(示例代碼) 需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12
jQuery中與toggleClass等價(jià)的程序段 以及未來(lái)學(xué)習(xí)的方向
昨天開(kāi)始學(xué)jQuery,js是我前端設(shè)計(jì)技術(shù)的一塊心病,一直沒(méi)有找到很好的學(xué)習(xí)辦法。最近突然開(kāi)悟,可以學(xué)jQuery呀,這個(gè)東西比較好學(xué)。2010-03-03

