jQuery如何製作自定義外掛
儘管jQuery已經提供了豐富的功能,能夠滿足基本的需要,但是並不能夠滿足所有的需要,所以有時候需要根據實際需要自定義一些具有特定功能的外掛,下面就來介紹一下如何製作一個自定義的jQuery外掛。
一.製作外掛必用的兩個函式:
[JavaScript] 純文字檢視 複製程式碼$.extend(object)//為jQuery新增一個靜態函式。 $.fn.extend(object)//為jQuery新增一個例項函式。
靜態函式和例項函式簡單介紹:
1.靜態函式:所謂靜態函式就是直接使用jQuery呼叫的函式,例如:
[JavaScript] 純文字檢視 複製程式碼jQuery.grep()
2.例項函式:所謂例項函式就是需要物件例項呼叫的函式,例如:
[JavaScript] 純文字檢視 複製程式碼$("#id").hide()
二.製作簡單的外掛:
1.自定義靜態函式:
[JavaScript] 純文字檢視 複製程式碼$.extend({func:function(){ alert("自定義靜態函式"); }}); $.fun();
以上程式碼為jQuery新增了一個靜態函式。
2.自定義例項函式:
[JavaScript] 純文字檢視 複製程式碼$.fn.extend({func:function(){ alert("自定義例項函式"); }}); $("#id").func();
三.外掛完善:
1.步驟一:
在很多外掛中,都有(function ($) { })(jQuery)這個結構的身影,下面介紹一下它的用法。
它定義個一個匿名函式,jQuery是此函式實參,在外掛中具有很重要的作用。一般說來,要將外掛的程式碼放置於一個不受干擾的環境中,也就是為這個外掛頂一個私有作用域,外部的程式碼不能直接訪問外掛內部的程式碼,外掛內部的程式碼不汙染全域性變數。
2.步驟二:
如果新增的函式需要新增引數的話,一般會給這個函式設定一個預設的值,如果沒有傳參,就使用預設值,下面就介紹一下如何設定預設值,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼(function($){ $.fn.setbgColor=function(option){ var defaultOption={backgroundColor:"green"} var newSettings={backgroundColor:option} $.extend(defaultOption,newSettings); var bgColor=defaultOption.backgroundColor; this.each(function(){ $(this).css("backgroundColor",bgColor); }) } })(jQuery);
以上程式碼可以讓setbgColor()函式的預設值為"green",主要利用到了 $.extend()函式,這裡就不介紹了,具體可以參閱$.extend()函式用法詳解一章節。
3.步驟三:
上面的外掛已經比較好用了,但是還不夠完美,鏈式呼叫是jQuery的一大便利之處,所以再這裡將外掛實現鏈式呼叫功能。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼(function($){ $.fn.setbgColor=function(option){ var defaultOption={backgroundColor:"green"} var newSettings={backgroundColor:option} $.extend(defaultOption,newSettings); var bgColor=defaultOption.backgroundColor; return this.each(function(){ $(this).css("backgroundColor",bgColor); }) } })(jQuery);
以上程式碼就可以實現鏈式呼叫效果了,因為each()函式是具有鏈式呼叫效果的,那麼它的返回值一定是jQuery物件,所以使用return返回jQuery物件就可以實現了。
相關文章
- 如何製作 Sketch 外掛
- APISIX Ingress 如何支援自定義外掛API
- Jquery外掛Nicescroll 製作漂亮的滾動條jQuery
- gradle自定義外掛Gradle
- mybatis 自定義外掛MyBatis
- jquery 擴充套件方法($.fn.extend/$.extend) 自定義外掛 拖拽jQuery套件
- vue自定義全域性元件(或自定義外掛)Vue元件
- 製作一個超簡單的全屏外掛(基於JQuery)jQuery
- 自定義Gradle-Plugin 外掛GradlePlugin
- apisix~自定義外掛的部署API
- es 自定義分詞外掛分詞
- php短視訊原始碼,jQuery實現自定義輪播圖外掛PHP原始碼jQuery
- Cordova學習--iOS自定義外掛iOS
- 【django學習-24】自定義外掛Django
- gradle自定義任務和外掛Gradle
- Kube-Scheduler外掛的自定義
- 快速自定義Cordova外掛(-配置檔案)
- apisix-dashboard上新增自定義外掛API
- 二 阿里大模型接入:自定義外掛阿里大模型
- mybaits原始碼分析--自定義外掛(七)AI原始碼
- [-Flutter外掛篇 1-] 從自定義外掛開始說起Flutter
- 【pytest】如何使用 pytest-rerunfailures 外掛並自定義重跑操作AI
- [外掛擴充套件]onethink自定義欄位外掛 百度地圖定位 外掛套件地圖
- JQuery模板外掛-jquery.tmpljQuery
- svelte元件:Svelte3自定義Navbar+Tabbr元件|svelte自定義外掛元件
- iOS持續整合(三)——fastlane 自定義外掛iOSAST
- Higress 基於自定義外掛訪問 RedisRedis
- Java整合系列:高效構建自定義外掛Java
- Apache Maven Assembly自定義打包外掛的使用ApacheMaven
- JMeter自定義取樣器外掛開發JMeter
- [外掛擴充套件]自定義表單外掛【2015-02-28更新】套件
- cnetos7 ISO 映象自定義製作
- flutter使用platform-channels製作外掛FlutterPlatform
- npm製作外掛、釋出及更新NPM
- xlam外掛製作實驗手冊
- Stacks網頁佈局製作外掛網頁
- JQuery蜂巢圖外掛jQuery
- jQuery的外掛列表jQuery
- ##自定義一個自動注入Log 的 外掛