溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jquery插件編寫簡單總結(jié)

發(fā)布時間:2020-05-31 08:38:06 來源:網(wǎng)絡(luò) 閱讀:229 作者:歆冉 欄目:web開發(fā)

jquery插件開發(fā)一般有兩種方法:

1?通過$.extend()來擴展,寫成jQuery.extend()也可以的

2?通過$.fn.extend()來進行擴展,也可以寫成jQuery.fn.extend()

第一種方法,相當于在$身上添加了一個全局函數(shù),如果和后臺java、c#類比的話,就是相當于在

$或jQuey這個類上添加了一個靜態(tài)的方法(函數(shù))

那怎么寫?

jquery插件編寫簡單總結(jié)

把通過第一種方法擴展的插件寫在這個common.js文件里,然后在index.html頁面去測試

代碼:

jquery插件編寫簡單總結(jié)

非常簡單的一行代碼

然后看index.html頁面調(diào)用

jquery插件編寫簡單總結(jié)

然后看控制臺輸出:

jquery插件編寫簡單總結(jié)

一切都是妥妥的,沒毛病,而且其他頁面如果引用了,都能使用這個方法。

但是如果需要定義多個全局的函數(shù),通常我們用面向?qū)ο蟮乃枷雭砭帉憽?/p>

例如:

jquery插件編寫簡單總結(jié)

將所有的成員都掛在一個對象上,或者說是放在一個命令空間里。這樣做的好處就是,不用定義太多的外部變量,避免引起沖突。

調(diào)用:

jquery插件編寫簡單總結(jié)

調(diào)用的話就是: $.對象名.成員。

結(jié)果:

jquery插件編寫簡單總結(jié)

當然我們也可以用jQuery提供給我們用于擴展用的行數(shù)extend()

例如:

jquery插件編寫簡單總結(jié)

調(diào)用:

jquery插件編寫簡單總結(jié)

結(jié)果:

jquery插件編寫簡單總結(jié)

前面的這些都屬于第一種方法的范疇,本質(zhì)就是在$上添加全局函數(shù)就可以了。

再看第二種方式$.fn.extend(),這種方式相當于給$的每一個實例對象添加方法(函數(shù))

首先我們要知道fn是個什么鬼,查看jQuery源代碼,會發(fā)現(xiàn)這樣的一行代碼:

jquery插件編寫簡單總結(jié)

說明我們就是在原型上去做的擴展。

例如:

jquery插件編寫簡單總結(jié)

注意:index是對應(yīng)的索引,ele對應(yīng)的是每一個dom元素對象

最后一樣的return是用于支持鏈式調(diào)用的。

調(diào)用:

jquery插件編寫簡單總結(jié)

最后的效果:

jquery插件編寫簡單總結(jié)

如果要擴展多個方法,這個時候就需要這樣寫了

jquery插件編寫簡單總結(jié)

顯然比較麻煩!

還是一樣可以使用jQuery提供給我們的方法(函數(shù))$.fn.extend()

如果要擴展多個就可以這樣寫了

jquery插件編寫簡單總結(jié)

調(diào)用:

jquery插件編寫簡單總結(jié)

能夠鏈式操作。

效果如圖所示:

jquery插件編寫簡單總結(jié)

總結(jié):

jQuey插件編寫的兩種方式:

1 $.extend();???? // 在全局上添加函數(shù) 相當于靜態(tài)方法(類比C#)

2 $.fn.extend();??? // 相當于給jquey對象添加?? 相當于實例方法(類比C#)

再補充一點:

jquery插件編寫簡單總結(jié)

這個外面的this和里面的這個this不是同一個對象

查看其結(jié)果:

jquery插件編寫簡單總結(jié)

注意里面的每一個this對象都是dom對象




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI