欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實例詳解jQuery的鏈式編程風格

 更新時間:2021年06月02日 08:53:33   作者:Erudite  
jQuery中的鏈式操作,它讓代碼變得更有層次更簡潔,所以這篇文章主要給大家介紹了關于jQuery鏈式編程風格的相關資料,需要的朋友可以參考下

鏈式編程的實現(xiàn)原理

jQuery可以讓我們開發(fā)者一直使用點語法調(diào)用自身方法的原理,主要原因是jQuery內(nèi)部利用了js的對象來實現(xiàn)。

在jQuery中,如果一直對同一個元素或元素的其他關系元素(兄弟元素,父子元素)進行操作,那么可以使用 .語法(點語法),一直寫下去。

$("#box").css("background", "pink").css("font-size":"29px");
$("#box").siblings().css("background", "");

可以寫成:

$("#box").css("background", "pink").siblings().css("background", "red");

實現(xiàn)鏈式編程jQuery選擇器本身是一個jquery對象。jQuery內(nèi)部利用this返回了自己本身。

    //js中,聲明一個對象
       var obj = {  
         name:"姓名", 
        desc: function(){   
        console.log(this); // 打印當前自身對象  
        console.log(this.name); // 調(diào)用自身對象的屬性   
        return this;  // 實現(xiàn)鏈式編程的原理,就是在調(diào)用方法后,方法本身返回對象。
},  
      read: function(){  
        console.log("hello!");    
        return this; 
    }}


jQuery的鏈式編程風格實例

首先本人通過一個案例來展示jQuery的鏈式編程風格。先寫一個頁面,展示一個列表,代碼如下:

<body>
    <div>
        <ul class="menu">
            <li class="level1">
                <a href="#">水果</a>
                <ul class="level2">
                    <li><a href="#">蘋果</a></li>
                    <li><a href="#">菠蘿</a></li>
                    <li><a href="#">香瓜</a></li>
                </ul>
            </li>
            <li class="level1">
                <a href="#">主食</a>
                <ul class="level2">
                    <li><a href="#">面條</a></li>
                    <li><a href="#">饅頭</a></li>
                    <li><a href="#">米飯</a></li>
                </ul>
            </li>
        </ul>
    </div>
</body>

<script type="text/javascript">
    $(function() {
        $(".level1 > a").click(function() {
            $(this).addClass("current").next().show().parent.siblings().children("a").removeClass("current").next().hide();
            return false;
        });
    });
</script>

代碼執(zhí)行后的效果如下圖所示:

 

 上述代碼的擴展效果就是通過jQuery的鏈式操作實現(xiàn)的,所有增加current類的操作、查詢子元素的方法調(diào)用、動畫方法的調(diào)用等都是對同一個元素進行的,所以在開始獲取到一個jQuery對象后,后面的所有方法、屬性的調(diào)用都通過 “.” 進行連續(xù)調(diào)用即可,這種模式就是鏈式操作。

為了增加代碼的可讀性和可維護性,我們將上面的鏈式代碼格式的修改如下:

<script type="text/javascript">
    $(function() {
        $(".level1 > a").click(function() {
            // 給當前的元素添加current樣式
            $(this).addClass("current")
                // 下一個元素顯示
                .next().show()
                // 父元素的同輩元素的子元素a移除current樣式
                .parent.siblings().children("a").removeClass("current")
                // 他們的下一個元素隱藏
                .next().hide();
            return false;
        });
    });
</script>

經(jīng)過規(guī)范格式的調(diào)整后,增加了代碼的易讀性,更加方便后期的維護。

與此同時,我們對于同一個jQuery對象進行鏈式操作時,主要遵循下面3條格式規(guī)范。

(1)對于同一個對象不超過3個操作,可以直接寫成一行,代碼如下:

<script type="text/javascript">
    $(function() {
        $("li").show().unbind("click");
    });
</script>

(2)對于同一個對象的較多操作,建議每行寫一個操作,代碼如下:

<script type="text/javascript">
    $(function() {
        $(this).removeClass("mouseout")
            .addClass("mouseover")
            .stop()
            .fadeTo("fast", 0.5)
            .fadeTo("fast", 1)
            .unbind("click")
            .click(function() {
                .......
            });
    });
</script>

(3)對于多個對象的少量操作,可以每個對象寫一行,如果涉及子元素,可以考慮適當?shù)目s進。代碼如下:

<script type="text/javascript">
    $(function() {
        $(this).addClass("highLight")
            .children("a").show().end()
            .siblings().removeClass("highLight")
            .children("a").hide();
    });
</script>

以上就是有關jQuery的鏈式編程風格。

總結

到此這篇關于jQuery鏈式編程風格的文章就介紹到這了,更多相關jQuery鏈式編程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論