国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

jQuery鏈式調用理解

2024-04-27 15:12:50
字體:
來源:轉載
供稿:網友

鏈式代碼

$('input[type="button"]')    .eq(0).click(function() {        alert('點擊我!');}).end().eq(1).click(function() {    $('input[type="button"]:eq(0)').trigger('click');}).end().eq(2).toggle(function() {    $('.aa').hide('slow');}, function() {    $('.aa').show('slow');});找出type類型為button的input元素

找到第一個按鈕,并綁定click事件處理函數

返回所有按鈕,再找到第二個

為第二個按鈕綁定click事件處理函數

為第三個按鈕綁定toggle事件處理函數

jQuery的這種管道風格的DSL鏈式代碼,總的來說:

節約JS代碼;

所返回的都是同一個對象,可以提高代碼的效率。

通過簡單擴展原型方法并通過return this的形式來實現跨瀏覽器的鏈式調用。利用JS下的簡單工廠方法模式,來將所有對于同一個DOM對象的操作指定同一個實例。

這個原理就超簡單了,如下代碼:

aQuery().init().name()

分解:

a = aQuery();a.init()a.name()

把代碼分解一下,很明顯實現鏈式的基本條件就是要實例對象先創建好,調用自己的方法。

aQuery.PRototype = {    init: function() {        return this;    },    name: function() {        return this    }}所以我們如果需要鏈式的處理,只需要在方法內部方法當前的這個實例對象this就可以了,因為返回當前實例的this,從而又可以訪問自己的原型了,這樣的就節省代碼量,提高代碼的效率,代碼看起來更優雅。但是這種方法有一個問題是:所有對象的方法返回的都是對象本身,也就是說沒有返回值,所以這種方法不一定在任何環境下都適合。

http://www.imooc.com/code/3402


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台中县| 酒泉市| 鄢陵县| 墨玉县| 南澳县| 琼中| 辉县市| 涞源县| 永州市| 桃园市| 宣武区| 虎林市| 高要市| 新龙县| 凤翔县| 纳雍县| 合山市| 仪征市| 朝阳区| 浠水县| 凌海市| 新津县| 九台市| 石棉县| 庆元县| 且末县| 巴林右旗| 会宁县| 淮阳县| 彩票| 洮南市| 阳新县| 安远县| 永顺县| 建平县| 北川| 乌拉特前旗| 莲花县| 望都县| 沛县| 庆元县|