:jquery插件開發(fā)模式 jquery插件一般有三種開發(fā)方式: 通過$.extend()來擴(kuò)展jQuery 通過$.fn 向jQuery添加新的方法 通過$.widget()應(yīng)用jQuery UI的部件工廠方式創(chuàng)建 第一種$.extend()相對簡單,一般很少能夠獨(dú)立開發(fā)復(fù)雜插件
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比淮陰網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式淮陰網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋淮陰地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
這是封裝好的json需要向后臺傳的值
json的格式為{key1:value1,key2:value2,key3:value3.........}中間用“,”隔開
后臺獲取key來都到value值
例:{suggest:txt}
這個(gè)json只有一個(gè)參數(shù),參數(shù)名為suggest,值為txt也就是$("input").val()的值
這是jquery的ajax異步操作
我這樣講應(yīng)該夠清楚吧,望采納……
現(xiàn)在網(wǎng)上關(guān)于js和jquery封裝的插件很多,我剛剛接觸前端的時(shí)候,就很敬佩那些自己寫插件的大牛們!因?yàn)槭撬麄兘o網(wǎng)站開發(fā)更多的便利,很多網(wǎng)頁效果,網(wǎng)上很多現(xiàn)成的插件!那么這些插件是如何寫的呢看首先是有扎實(shí)的js和jquery技術(shù)基礎(chǔ),其次還有一些寫插件的方法和技巧。關(guān)于js和jquery的技術(shù)基礎(chǔ),那是一個(gè)慢慢積累的過程。但是關(guān)于寫插件的一些注意和技巧,本文可以略微介紹一下,方便以后寫插件的時(shí)候用得到。
jquery插件開發(fā)模式
jquery插件一般有三種開發(fā)方式:
通過$.extend()來擴(kuò)展jQuery
通過$.fn 向jQuery添加新的方法
通過$.widget()應(yīng)用jQuery UI的部件工廠方式創(chuàng)建
第一種$.extend()相對簡單,一般很少能夠獨(dú)立開發(fā)復(fù)雜插件,第三種是一種高級的開發(fā)模式,本文也不做介紹。第二種則是一般插件開發(fā)用到的方式,本文著重講講第二種。
Html代碼:
復(fù)制代碼
代碼如下:
div
class="topicList"
h3span學(xué)習(xí)天地/span/h3
ul
li1111111111/li
li2222222222/li
li333333333/li
li4444444444/li
li5555555555/li
li6666666666/li
/ul
/div
Jquery代碼:
第一種實(shí)現(xiàn)方式:
復(fù)制代碼
代碼如下:
1.
script
type="text/javascript"
$(function(){
$(".topicList
h3").click(function(){
var
UL
=
$(this).next("ul");
if(UL.css("display")=="none"){
UL.css("display","block");
}
else{
UL.css("display","none");
}
});
});
/script
第二種實(shí)現(xiàn)方式:
復(fù)制代碼
代碼如下:
2.
script
type="text/javascript"
$(function(){
$(".topicList
h3").toggle(function(){
$(this).next("ul").hide(1000);
},function(){
$(this).next("ul").show(1000);
});
});
/script
第三種實(shí)現(xiàn)方式:
可以使用Jquery提供的show和hide來完成帶緩動(dòng)的顯示和隱藏效果,由于兩個(gè)方法相似,可以直接使用toggle來完成。
復(fù)制代碼
代碼如下:
3.
script
type="text/javascript"
$(function(){
$(".topicList
h3").toggle(function(){
$(this).next("ul").css("display","none");
},function(){
$(this).next("ul").css("display","block");
});
});
/script
第四種實(shí)現(xiàn)方式:
toggle如果有兩個(gè)參數(shù),并且都是函數(shù),表示第一次點(diǎn)擊執(zhí)行第一個(gè)函數(shù),第二次點(diǎn)擊執(zhí)行第二個(gè)函數(shù)。
復(fù)制代碼
代碼如下:
4.
script
type="text/javascript"
$(function(){
$(".topicList
h3").toggle(topicHandler,topicHandler);
function
topicHandler(){
//使用fadeIn、show、slideDown可以完成某個(gè)容器的顯示
//使用fadeOut、hide、slideUp可以完成某個(gè)容器的隱藏
//所以可以通過各個(gè)的toggle來完成兩個(gè)之間的輪換
$(this).next("ul").toggle(1000);
}
});
/script
Query實(shí)質(zhì)上是一個(gè)構(gòu)造函數(shù),該構(gòu)造函數(shù)接受一個(gè)參數(shù),jQuery通過這個(gè)參數(shù)利用原生API找到節(jié)點(diǎn),之后返回一個(gè)方法對象,該方法對象上的方法對節(jié)點(diǎn)進(jìn)行操作(方法使用了閉包)。
1.可以通過封裝函數(shù)的方法。? ??
這時(shí)候可以通過傳入節(jié)點(diǎn)和類名來實(shí)現(xiàn)addClass的操作。但是這樣會(huì)污染變量。比如覆蓋掉其他的addClass方法。
2.通過封裝命名空間的方法。
var?obj = {}
obj.addClass(node,classes){? classes.forEach((value) = {node.classList.add(value)}) }
封裝命名空間就是所有封裝的函數(shù)放入一個(gè)對象之中,通過調(diào)用對象來調(diào)用封裝的函數(shù),這樣不會(huì)污染全局變量。
3.通過原型鏈調(diào)用封裝函數(shù)
這種方法的優(yōu)點(diǎn)是無侵入。jQuery構(gòu)造函數(shù)生成一個(gè)新的對象,并給對象封裝方法,不會(huì)修改節(jié)點(diǎn)上的原生Node對象。
然后通過window.$ = jQuery,通過$()就可以調(diào)用里面定義的addClass,getSiblings等方法了。