国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

翻譯jquery官方的插件制作方法

開發(fā) 前端
有時候你想重復(fù)使用同一個代碼塊,舉例:你想寫一方法,你可以用這個方法,選擇做一系列的選擇操作,所以你想創(chuàng)造一個插件。

有時候你想重復(fù)使用同一個代碼塊,舉例:你想寫一方法,你可以用這個方法,選擇做一系列的選擇操作,所以你想創(chuàng)造一個插件。

翻譯jquery官方的插件制作方法

jquery怎么樣工作:jquery對象方法(jquery Object Methods)

在寫自己的插件之前,我們必須明白下面這段代碼是如何工作的:

  1. $( "a" ).css( "color""red" ); 

這是一段簡潔實(shí)用的jquery代碼段,但是你知道jquery幕后是如何工作的么?當(dāng)你只用 “$"函數(shù)選擇元素的時候,它返回了一個

jquery對象。這個對象包含了所有jquery可以調(diào)用的方法,例如,你肯定已經(jīng)使用過這些(.css(), .click()…等等)。

這些方法適用于你用jquery選擇器選擇出來的所有元素。jquery對象的這些方法是從$.fn object 繼承出來的。

$.fn 對象包含了所有jquery的對象方法,如果你想寫自己的方法增加到j(luò)query, 你需要把你的自定義方法寫在$.fn上。

基本的插件制作方法:

例如我們想制作一個greenify插件,用這個插件來設(shè)置一個dom元素的文字為綠色的。所以我們把一個叫g(shù)reenify得方法增加到

$.fn上,它跟其他jquery對象方法一樣。

 

  1. $.fn.greenify = function() {     this.css( "color""green" ); };  $( "a" ).greenify(); // 使得所有鏈接顏色為綠色。 

 

注意:這里我們使用的.css(),前邊調(diào)用它的是this,而不是$(this)對象。這是因?yàn)槲覀兊膅renify方法和.css()方法被調(diào)用的對象一樣,

this代表了一個jquery對象。

啟用鏈?zhǔn)剑?/strong>

這一步要做2件事幫助我們的插件可以被實(shí)際使用。

***:鏈?zhǔn)讲僮魇莏query的一個特點(diǎn),你可以在一個被選出的元素后增加5或者6個操作。這是通過所以jquery對象方法再次返回來原來的jquery對象來完成的,使我們的方法啟用鏈?zhǔn)讲僮髦恍枰黾右恍校?/p>

 

  1. $.fn.greenify = function() {     this.css( "color""green" );      return this;// 啟用鏈?zhǔn)?nbsp; } 
  2.  
  3. $( "a" ).greenify().addClass( "greenified" ); 

 

 這里在使得a標(biāo)簽的文字變成綠色后我們還可以給a標(biāo)簽增加class.

$別名的保護(hù),增加作用域

第二:$符號在javascript庫或框架中非常流行,如果你在項(xiàng)目中同時用了其他類庫和jquery一起,你不能使得jquery使用$符號,

用jquery.noConflict()方法釋放掉$符號,然而我們的插件是假設(shè)使用$符號構(gòu)建的jquery方法。但是我們還是需要繼續(xù)使用

$符號和其他插件一起共工作。我們必須把我們的代碼放在匿名函數(shù)表達(dá)式中(防止$被污染)。然后我們把jquery作為參數(shù)傳遞進(jìn)去,

相應(yīng)的形參用$符號。

 

  1. (function ( $ ) {      $.fn.greenify = function() {          this.css( "color""green" );          return this;      };  }( jQuery )); 

 

此外,我們使用匿名函數(shù)表達(dá)式是為了把變量私有化,加入我們想使用不同的顏色,我們可以用變量緩存。

 

  1. (function ( $ ) {      var shade = "#556b2f";      $.fn.greenify = function() {          this.css( "color", shade );          return this;      };  }( jQuery )); 

 

只使用一個$.fn來構(gòu)建插件:

只使用一個$.fn 會降低你的插件方法被覆蓋的幾率,下面的例子是不推薦的做法:

 

  1. (function( $ ) {      //不好的例子          $.fn.openPopup = function() {          // Open popup code.      };     $.fn.closePopup = function() {          // Close popup code.      }; }( jQuery )); 

 

***的實(shí)踐是只使用一個$.fn,然后在內(nèi)部判斷不同的行為,來執(zhí)行不同的操作:

 

  1. (function( $ ) {      $.fn.popup = function( action ) {          if ( action === "open") {              // Open popup code.          }          if ( action === "close" ) {              // Close popup code.          }      };  }( jQuery )); 

 

使用each()方法遍歷(each() method)

典型的jquery方法包含任意數(shù)量的dom元素,這就是為什么jquery對象被稱為對象集合。如果你想對一定數(shù)量的元素執(zhí)行

任何操作你肯定要用到each遍歷dom樹。(操作包括獲取元素的屬性 get attribute,元素位置 positions).

 

  1. $.fn.myNewPlugin = function() {      return this.each(function() {          //遍歷元素然后do something      }); }; 

 

注意:我們返回的是.each()的結(jié)果 代替了 return this. 因?yàn)閑ach()已經(jīng)是可鏈?zhǔn)降?,each內(nèi)部已經(jīng)返回了我們需要return的this.

這是到目前為止讓我們應(yīng)用鏈?zhǔn)?**的方式。

參數(shù)的配置使用:

當(dāng)你的插件越來越復(fù)雜,***的方式是讓你的插件來接收參數(shù),這樣的插件是可定制的。最簡單的方法是,把很多個參數(shù)用一個對象

字面量裝起來?,F(xiàn)在我們來讓我們的greenify插件接收一些參數(shù):

 

  1. (function ( $ ) {     $.fn.greenify = function( options ) {           // 這里是配置的默認(rèn)參數(shù)          var settings = $.extend({              color: "#556b2f",              backgroundColor: “white"          }, options );          // Greenify 方法基于默認(rèn)的參數(shù)設(shè)定          return this.css({              color: settings.color,              backgroundColor: settings.backgroundColor          });      };  }( jQuery )); 

 

實(shí)際調(diào)用的時候傳入?yún)?shù):

  1. $( "div" ).greenify({      color: "orange"  }); 

默認(rèn)的的color顏色設(shè)定 “#556b2f”,將被 color “orange” 覆蓋掉。

把所有東西整合在一起:

下面這個插件用到了我們上面討論過的技術(shù):

 

  1. (function( $ ) {      $.fn.showLinkLocation = function() {          this.filter( "a" ).each(function() {              var link = $( this );              link.append( " (" + link.attr( "href" ) + ")" );          });         return this;      };  }( jQuery )); 

 

// 實(shí)際調(diào)用

  1. $( "a" ).showLinkLocation(); 

這個插件的工作方式是:把a(bǔ)標(biāo)簽的href屬性里的值,增加到a標(biāo)簽的里邊

<!—插件被調(diào)用前 -->

  1. <a href="page.html">Foo</a> 

<!— 插件被調(diào)用后 -->

  1. <a href="page.html">Foo (page.html)</a> 

優(yōu)化我們的插件:

 

  1. (function( $ ) {         $.fn.showLinkLocation = function() {             this.filter( "a" ).append(function() {              return " (" + this.href + ")";          });             return this;         };     }( jQuery )); 

 

我們只用.append()方法接受回調(diào),該回調(diào)函數(shù)返回的值將追加到遍歷的每一個a元素集合中。

注意:我們沒有使用.attr()方法來獲得元素的屬性,這是因?yàn)?原生的DOM API給了我們簡單的獲取href屬性的方式

(原生的方法要比jquery的方法性能好)

本文來自api.jquery.com的插件制作官方文檔,如果文章有翻譯錯誤,請指正。(轉(zhuǎn)載請注明出處,謝謝)

倉庫地址:https://github.com/ollieSk8/create_jq_plugins

參考原文地址:http://learn.jquery.com/plugins/basic-plugin-creation/

 
責(zé)任編輯:王雪燕 來源: 博客園
相關(guān)推薦

2011-09-06 15:12:39

MTK

2011-07-20 16:03:48

iPhone PXL 安裝包

2011-11-25 09:09:22

jQuery

2017-11-13 13:06:32

表情包草圖表情

2009-09-15 09:23:35

初級linuxLinuxlinu操作系統(tǒng)x后門

2010-06-29 09:55:41

嵌入式Linux文件系統(tǒng)

2010-08-17 10:48:12

Div CSS實(shí)例

2009-06-10 16:32:45

MyEclipseEclipse綠色版

2011-04-26 16:29:48

噴墨打印墨盒噴打堵頭

2013-12-02 14:53:20

jQuery插件

2015-07-02 16:10:11

UIStackViewiOS 9

2017-12-24 22:52:49

微信小程序圣誕

2020-12-01 15:54:08

鴻蒙構(gòu)建系統(tǒng)

2012-05-10 13:45:45

jQuery

2013-01-09 10:20:26

jQueryFlotjQuery插件

2014-11-04 09:44:37

WebjQuery

2013-12-02 15:36:17

jQuery插件

2013-12-02 15:31:37

jQuery插件

2012-04-25 09:43:43

jQuery插件

2013-03-20 13:21:51

jQueryjQuery插件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

免费黄色在线视频网站| 黄色在线网站| 992tv在线影院| 精品视频在线一区二区| 亚洲一区二区三区四区| www.久久爱.com| 欧美最新另类人妖| 欧美视频日韩| 99精品桃花视频在线观看| 亚洲成人久久影院| 亚洲精品电影在线观看| 欧美精品在线极品| 韩国成人一区| 欧美爱爱视频免费看| 一区二区三区不卡在线视频| 依依综合在线| 自由日本语亚洲人高潮| 久久亚洲免费视频| 这里只有精品免费| 91极品视频在线| 亚洲一区三区视频在线观看| 激情综合色综合啪啪开心| 17videosex性欧美| 日韩免费一区| 久久亚洲春色中文字幕久久久| 欧美日韩精品三区| 国产97色在线|日韩| 国产一区二区在线视频播放| 美女视频在线免费| 激情综合在线| 天天综合天天综合色| 欧美精品videossex88| 免费高清一区二区三区| 搞黄网站在线看| 亚洲黄色影片| 天天色综合成人网| 欧美在线视频网| 中文字幕在线导航| 中文字幕一区二区三区中文字幕 | 欧美高清影院| 国产老肥熟一区二区三区| 日韩黄色片在线观看| 亚洲电影在线播放| 国产精品2018| 91黑丝在线| 国产精品99久久免费观看| 成人a区在线观看| 亚洲男人天天操| 在线观看欧美亚洲| 精品众筹模特私拍视频| 秋霞午夜鲁丝一区二区老狼| 亚洲精品在线电影| 三上悠亚免费在线观看| 欧美办公室脚交xxxx| 激情综合色综合久久| 亚洲天堂网在线观看| 无码专区aaaaaa免费视频| 宅男噜噜噜66国产精品免费| 国产一区二区三区91| 日韩欧美视频一区二区三区| 不卡一区二区三区视频| 成人黄视频在线观看| 精品国产亚洲日本| 久久精品人人爽人人爽| 2024亚洲男人天堂| 亚洲最新合集| 亚洲欧美日韩在线观看a三区| 亚洲精品电影久久久| 亚洲熟妇无码一区二区三区导航| 黑人久久a级毛片免费观看| 亚洲永久精品国产| 国产成人精品福利一区二区三区 | 青青草视频国产| 北条麻妃一区二区三区在线观看| 亚洲美女一区二区三区| 91在线短视频| 国产在线精彩视频| 国产精品久久99| 豆国产97在线| jizzyou欧美16| 亚洲高清三级视频| 综合视频免费看| 色哟哟精品丝袜一区二区| 欧美性猛交xxxx乱大交退制版| 亚洲欧洲一区二区福利| 久久国产精品美女| 在线视频你懂得一区| 国产盗摄视频在线观看| 亚洲综合图色| 精品日本一线二线三线不卡| 99热手机在线观看| 俺来也官网欧美久久精品| 国产亚洲自拍一区| 欧美日韩国产不卡在线看| 一区二区在线免费播放| 精品免费日韩av| 在线色视频观看| 成人久久18免费网站麻豆| 91久久在线观看| 成人午夜大片| 精品一区精品二区| 九色视频网站在线观看| 播五月开心婷婷综合| 国产欧美日韩综合一区在线观看 | 首页亚洲欧美制服丝腿| 136fldh精品导航福利| 黄色精品视频| 欧美成人一区二区三区片免费| 成人免费在线看片| 精品网站aaa| 久久久爽爽爽美女图片| 惠美惠精品网| 日韩一区二区三区四区| 日本欧洲一区| 国产亚洲成年网址在线观看| 在线免费观看一区二区三区| 红桃视频国产精品| 91欧美精品成人综合在线观看| 欧美变态挠脚心| 久久99精品视频一区97| 欧美极品在线| 国产一区二区三区视频在线观看| 日本片在线观看| 91精品一区二区三区久久久久久| 伊人网在线免费观看| 亚洲在线中文字幕| 有码av在线| 狠狠久久五月精品中文字幕| 日韩黄色动漫| 洋洋成人永久网站入口| 一级网站免费观看| 精品久久久久久久久久| 中出在线观看| 一本一本大道香蕉久在线精品| 欧美理论在线观看| 7777精品伊人久久久大香线蕉完整版| av大片在线播放| 日韩精品中文字幕在线一区| 成人三级网址| 亚洲欧美激情一区| 国产乱码精品一区二区三区亚洲人| 日韩中文字幕在线免费观看| 精品视频一区二区三区| 日韩美女av在线免费观看| 亚洲国产精品成人| 国产v亚洲v天堂无码| 亚洲一级在线| 中文字幕免费在线不卡| www.亚洲免费av| 亚洲视频在线观看一区二区三区| 一卡二卡欧美日韩| 五月香视频在线观看| 亚洲偷欧美偷国内偷| 午夜精品影视国产一区在线麻豆| 日本久久中文字幕| 中日韩男男gay无套| 一区二区精品在线| 1024精品合集| 国产黄色在线观看| 欧美大片免费看| 欧美日韩一区自拍| 欧洲精品在线播放| 午夜国产不卡在线观看视频| 1769在线观看| 久久99国产精品自在自在app| 欧美日韩一区二区三区视频播放| 性高潮久久久久久久久| 中文字幕乱码日本亚洲一区二区 | 欧美日韩国产成人精品| 中文网丁香综合网| 亚洲精品国产无天堂网2021| 97人澡人人添人人爽欧美| 欧美精品18videos性欧| 午夜在线视频观看日韩17c| 97在线观看播放| 欧美成人r级一区二区三区| 国偷自产视频一区二区久| 亚洲国产精品久久久久婷婷老年| 国产图片一区| 日本一区免费在线观看| 国产精品福利影院| 欧美xxxx视频| 国产精品视频网站| 91网址在线看| 国产极品人妖在线观看| 国产精品一区久久| 国产女主播视频一区二区| av资源新版天堂在线| 翡翠波斯猫1977年美国| 国产精品视频九色porn| 九九久久国产| 日韩亚洲视频在线| 色综合天天综合在线视频| 国产精品2023| 日韩a在线播放| 亚洲国内精品在线| 视频在线观看一区二区三区| 久草在线看片| 国产精品欧美风情| 国产精品久久久久四虎|