亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

jQuery插件--分頁(yè)

trilever / 914人閱讀

摘要:避免函數(shù)體內(nèi)和外部的變量沖突。實(shí)參分別接受對(duì)象,對(duì)象都是全局環(huán)境下的,而在函數(shù)體內(nèi)的其實(shí)是局部變量,不是全局的對(duì)象。

查看效果

HTML



    
    
    



JS
;(function ($, window, document, undefined) {
    "use strict";
    function Paging(element, options) {
        this.element = element;
        this.options = {
            pageNum: options.pageNum || 1, // 當(dāng)前頁(yè)碼
            totalNum: options.totalNum, // 總頁(yè)碼
            totalList: options.totalList, // 數(shù)據(jù)總記錄
            callback: options.callback // 回調(diào)函數(shù)
        };
        this.init();
    }
    Paging.prototype = {
        constructor: Paging,
        init: function () {
            this.createHtml();
            this.bindEvent();
        },
        createHtml: function () {
            var me = this;
            var content = [];
            var pageNum = me.options.pageNum;
            var totalNum = me.options.totalNum;
            var totalList = me.options.totalList;
            content.push("");
            // 總頁(yè)數(shù)大于6必顯示省略號(hào)
            if (totalNum > 6) {
                // 1、當(dāng)前頁(yè)碼小于5且總頁(yè)碼大于6 省略號(hào)顯示后面+總頁(yè)碼
                if (pageNum < 5) {
                    // 1與6主要看要顯示多少個(gè)按鈕 目前都顯示5個(gè)
                    for (var i = 1; i < 6; i++) {
                        if (pageNum !== i) {
                            content.push("");
                        } else {
                            content.push("");
                        }
                    }
                    content.push(". . .");
                    content.push("");
                } else {
                    // 2、當(dāng)前頁(yè)碼接近后面 中間隔3個(gè) 省略號(hào)顯示后面+總頁(yè)面
                    if (pageNum < totalNum - 3) {
                        for (var i = pageNum - 2; i < pageNum + 3; i++) {
                            if (pageNum !== i) {
                                content.push("");
                            } else {
                                content.push("");
                            }
                        }
                        content.push(". . .");
                        content.push("");
                    } else {
                        // 3、頁(yè)碼至少在5,最多在【totalNum - 3】的中間位置 第一頁(yè)+省略號(hào)顯示前面
                        content.push("");
                        content.push(". . .");
                        for (var i = totalNum - 4; i < totalNum + 1; i++) {
                            if (pageNum !== i) {
                                content.push("");
                            } else {
                                content.push("");
                            }
                        }
                    }
                }
            } else {
                // 總頁(yè)數(shù)小于6
                for (var i = 1; i < totalNum + 1; i++) {
                    if (pageNum !== i) {
                        content.push("");
                    } else {
                        content.push("");
                    }
                }
            }
            content.push("");
            content.push(" 共 " + totalNum + " 頁(yè) ");
            content.push(" 共 " + totalList + " 條記錄 ");
            me.element.html(content.join(""));

            // DOM重新生成后每次調(diào)用是否禁用button
            setTimeout(function () {
                me.dis();
            }, 20);
        },
        bindEvent: function () {
            var me = this;
            me.element.off("click", "button");
            // 委托新生成的dom監(jiān)聽(tīng)事件
            me.element.on("click", "button", function () {
                var id = $(this).attr("id");
                var num = parseInt($(this).html());
                var pageNum = me.options.pageNum;
                if (id === "prePage") {
                    if (pageNum !== 1) {
                        me.options.pageNum -= 1;
                    }
                } else if (id === "nextPage") {
                    if (pageNum !== me.options.totalNum) {
                        me.options.pageNum += 1;
                    }
                } else if (id === "firstPage") {
                    if (pageNum !== 1) {
                        me.options.pageNum = 1;
                    }
                } else if (id === "lastPage") {
                    if (pageNum !== me.options.totalNum) {
                        me.options.pageNum = me.options.totalNum;
                    }
                } else {
                    me.options.pageNum = num;
                }
                me.createHtml();
                if (me.options.callback) {
                    me.options.callback(me.options.pageNum);
                }
            });
        },
        dis: function () {
            var me = this;
            var pageNum = me.options.pageNum;
            var totalNum = me.options.totalNum;
            if (pageNum === 1) {
                me.element.children("#firstPage, #prePage").prop("disabled", true);
            } else if (pageNum === totalNum) {
                me.element.children("#lastPage, #nextPage").prop("disabled", true);
            }
        }
    };
    $.fn.paging = function (options) {
        return new Paging($(this), options);
    }
})(jQuery, window, document);

jQuery插件友情鏈接

// 1、代碼最前面的分號(hào),可以防止多個(gè)文件壓縮合并以為其他文件最后一行語(yǔ)句沒(méi)加分號(hào),而引起合并后的語(yǔ)法錯(cuò)誤。
// 2、匿名函數(shù)(function(){})();:由于Javascript執(zhí)行表達(dá)式是從圓括號(hào)里面到外面,所以可以用圓括號(hào)強(qiáng)制執(zhí)行聲明的函數(shù)。避免函數(shù)體內(nèi)和外部的變量沖突。
// 3、$實(shí)參:$是jquery的簡(jiǎn)寫(xiě),很多方法和類庫(kù)也使用$,這里$接受jQuery對(duì)象,也是為了避免$變量沖突,保證插件可以正常運(yùn)行。
// 4、window, document實(shí)參分別接受window, document對(duì)象,window, document對(duì)象都是全局環(huán)境下的,而在函數(shù)體內(nèi)的window, document其實(shí)是局部變量,不是全局的window, document對(duì)象。這樣做有個(gè)好處就是可以提高性能,減少作用域鏈的查詢時(shí)間,如果你在函數(shù)體內(nèi)需要多次調(diào)用window 或 document對(duì)象,這樣把window 或 document對(duì)象當(dāng)作參數(shù)傳進(jìn)去,這樣做是非常有必要的。當(dāng)然如果你的插件用不到這兩個(gè)對(duì)象,那么就不用傳遞這兩個(gè)參數(shù)了。
// 5、undefined形參了,看起來(lái)是有點(diǎn)多余。undefined在老一輩的瀏覽器是不被支持的,直接使用會(huì)報(bào)錯(cuò),js框架要考慮到兼容性,因此增加一個(gè)形參undefined

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/103170.html

相關(guān)文章

  • 我以前寫(xiě)的一個(gè)jQuery分頁(yè)插件

    摘要:用分布函數(shù)來(lái)制作分頁(yè)鏈接,可以省下很多代碼流量呢看看跳轉(zhuǎn)到頁(yè)之后只要這么引用它就好了 用JavaScript分布函數(shù)來(lái)制作分頁(yè)鏈接,可以省下很多html代碼流量呢!看看 (function($){ $.fn.pagination=function(pagecount,page,surl){ var $box=$(this).empty();var shtml= if(pagecoun...

    vspiders 評(píng)論0 收藏0
  • jQuery插件simplePagination的使用_03

    摘要:插件的使用正在熟悉項(xiàng)目上的代碼,新添加了一個(gè)需要,需要對(duì)表單進(jìn)行分頁(yè),之前的代碼中是有分頁(yè)的代碼的,看了老半天,也沒(méi)看太明白。 jQuery插件simplePagination的使用 正在熟悉項(xiàng)目上的代碼,新添加了一個(gè)需要,需要對(duì)表單進(jìn)行分頁(yè),之前的代碼中是有分頁(yè)的代碼的,看了老半天,也沒(méi)看太明白。之前的項(xiàng)目比較久遠(yuǎn),繼續(xù)熟悉代碼。 simplePagination的使用 HTML頁(yè)面...

    NotFound 評(píng)論0 收藏0
  • jQuery插件simplePagination的使用-踩坑記_03

    摘要:插件的使用正在熟悉項(xiàng)目上的代碼,新添加了一個(gè)需要,需要對(duì)表單進(jìn)行分頁(yè),之前的代碼中是有分頁(yè)的代碼的,看了老半天,也沒(méi)看太明白。 jQuery插件simplePagination的使用 正在熟悉項(xiàng)目上的代碼,新添加了一個(gè)需要,需要對(duì)表單進(jìn)行分頁(yè),之前的代碼中是有分頁(yè)的代碼的,看了老半天,也沒(méi)看太明白。之前的項(xiàng)目比較久遠(yuǎn),繼續(xù)熟悉代碼。 simplePagination的使用 HTML頁(yè)面...

    羅志環(huán) 評(píng)論0 收藏0
  • Web前端常用插件

    摘要:彈窗視頻嵌入插件幻燈片圖片切換手機(jī)端響應(yīng)式日期控件上傳圖片控件校驗(yàn)控件分頁(yè)靜態(tài)分頁(yè)動(dòng)態(tài)分頁(yè)相冊(cè)效果控件多級(jí)下拉圖片延遲加載或響應(yīng)式管理模板插件庫(kù)大轉(zhuǎn)盤(pán)九宮格效果整屏滾動(dòng)滾動(dòng)效果用于移動(dòng)項(xiàng)目的光滑菜單瀏覽器端格式化工具千手觀音 彈窗 1.blockUI2.overlay 3.sweetAlert 視頻 1.jwplayer2.video.js html53.swfobject Flas...

    quietin 評(píng)論0 收藏0
  • 前端技術(shù) 博客文章、書(shū)籍 積累

    摘要:好多編輯器例如等都支持這樣的語(yǔ)法來(lái)快速的編寫(xiě)代碼如何優(yōu)雅地使用把標(biāo)簽放在結(jié)束標(biāo)簽之后結(jié)束標(biāo)簽之前的差別什么是響應(yīng)式設(shè)計(jì)怎樣進(jìn)行 書(shū)籍 《JavaScriptDOM編程藝術(shù)》《JavaScript高級(jí)程序設(shè)計(jì)》《JavaScript框架設(shè)計(jì)》《JavaScript專家編程》《JavaScript Ninjia》《JavaScript語(yǔ)言精粹(修訂版)》《JavaScript設(shè)計(jì)模式》《J...

    LiangJ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<