<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        jQueryautocomplate自擴展插件、自動完成示例代碼_jquery

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 20:58:32
        文檔

        jQueryautocomplate自擴展插件、自動完成示例代碼_jquery

        jQueryautocomplate自擴展插件、自動完成示例代碼_jquery: 代碼如下: 不過做了瀏覽器方面的兼容,經(jīng)測試兼容IE6+、Firefox3.5+ 首先看看autocomplate.js: ;(function ($) { var index = -1; var timeId; var cssOptions = { border: 1px solid black, backgroun
        推薦度:
        導讀jQueryautocomplate自擴展插件、自動完成示例代碼_jquery: 代碼如下: 不過做了瀏覽器方面的兼容,經(jīng)測試兼容IE6+、Firefox3.5+ 首先看看autocomplate.js: ;(function ($) { var index = -1; var timeId; var cssOptions = { border: 1px solid black, backgroun

        代碼如下:
        不過做了瀏覽器方面的兼容,經(jīng)測試兼容IE6+、Firefox3.5+
        首先看看autocomplate.js:
        ;(function ($) {
        var index = -1;
        var timeId;
        var cssOptions = {
        "border": "1px solid black",
        "background-color": "white",
        "position": "absolute"/*,
        "font": "normal normal lighter 14px 6px Times New Roman"*/
        };
        var defaults = {
        width: "auto",
        highlightColor: "#3399FE",
        unhighlightColor: "#FFFFFF",
        css: cssOptions,
        dataType: "xml",
        paramName: "word",
        delay: 500,
        max: 20
        };
        var keys = {
        UP: 38,
        DOWN: 40,
        DEL: 46,
        TAB: 9,
        ENTER: 13,
        ESC: 27,
        /*COMMA: 188,*/
        PAGEUP: 33,
        PAGEDOWN: 34,
        BACKSPACE: 8,
        A: 65,
        Z: 90
        };
        $.fn.extend({
        autocomplete: function (sUrl, settings) {
        sUrl = (typeof sUrl === "string") ? sUrl : "";
        var param = !this.attr("id") ? defaults.paramName : this.attr("id");
        settings = $.extend({}, defaults, {url: sUrl, paramName: param}, settings);
        var autoTip = this.autoTipTemplate(this, settings);
        $("body").append(autoTip);
        var $this = this;
        this.keyup(function (event) {
        $this.keyOperator(event, autoTip, settings);
        });
        /*$("input[type=button]").click(function () {
        $("#result").text("文本框中的【" + search.val() + "】被提交了!");
        $("#auto").hide();
        index = - 1;
        });*/
        return this.each(function () {
        $this.val();
        });
        },
        autoTipTemplate: function (input, settings) {
        var inputOffset = input.offset();
        var autoTip = $("").css(settings.css).hide()
        .css("top", inputOffset.top + input.height() + 5 + "px")
        .css("left", inputOffset.left + "px");
        var space = $.browser.mozilla ? 2 : 6;//兼容瀏覽器
        var tipWidth = (typeof settings.width === "string" && "auto") ? input.width() : settings.width;
        autoTip.width(tipWidth + space + "px");
        return autoTip;
        },
        select: function (target, index, settings, flag) {
        var color = flag ? settings.highlightColor : settings.unhighlightColor;
        target.children("div").eq(index).css("background-color", color);
        },
        keyOperator: function (event, autoTip, settings) {
        var evt = event || window.event;
        var autoNodes = autoTip.children("div");
        var kc = evt.keyCode;
        var $this = this;
        /* 當用戶按下字母或是delete 或是退格鍵*/
        if (kc >= keys.A && kc <= keys.Z || kc == keys.BACKSPACE || kc == keys.DEL) {
        var wordText = this.val();
        if (wordText.length != 0) {
        var param = {};
        param[settings.paramName] = wordText;
        clearTimeout(timeId);
        timeId = setTimeout(function () {
        $.post(settings.url, param, function (data) {
        var wordObj = $(data);
        if (settings.dataType == "xml") {
        var wordNodes = wordObj.find("word");
        autoTip.html("");
        wordNodes.each(function (i) {
        var divNode = $("").attr("id", i);
        //將遍歷的單詞加入到創(chuàng)建的div中,然后把該div追加到auto中
        divNode.html($(this).text()).appendTo(autoTip);
        //鼠標已進去,添加高亮
        divNode.mousemove(function () {
        //如果已經(jīng)存在高亮,去掉高亮改為白色
        if (index != -1) {
        autoTip.children("div").eq(index).css("background-color", settings.unhighlightColor);
        }
        index = $(this).attr("id");
        $(this).css("background-color", settings.highlightColor);
        });
        //鼠標移出,取消高亮
        divNode.mouseout(function () {
        $(this).css("background-color", settings.unhighlightColor);
        });
        //點擊高亮內容
        divNode.click(function () {
        $this.val($(this).text());
        index = -1;
        autoTip.hide();
        });
        });
        if (wordNodes.length > 0) {
        autoTip.show();
        } else {
        autoTip.hide();
        index = -1;
        }
        }
        });
        }, settings.delay);
        } else {
        autoTip.hide();
        index = -1;
        }
        } else if (kc == keys.UP || kc == keys.DOWN) {/*當用戶按下上下鍵*/
        if (kc == keys.UP) {//向上
        if (index != -1) {
        autoNodes.eq(index).css("background-color", settings.unhighlightColor);
        index--;
        } else {
        index = autoNodes.length - 1;
        }
        if (index == -1) {
        index = autoNodes.length - 1;
        }
        autoNodes.eq(index).css("background-color", settings.highlightColor);
        } else {//向下
        if (index != -1) {
        autoNodes.eq(index).css("background-color", settings.unhighlightColor);
        }
        index++;
        if (index == autoNodes.length) {
        index = 0;
        }
        autoNodes.eq(index).css("background-color", settings.highlightColor);
        }
        } else if (kc == keys.PAGEUP || kc == keys.PAGEDOWN) {
        event.preventDefault();
        if (kc == keys.PAGEUP) {
        if (index != -1) {
        autoNodes.eq(index).css("background-color", settings.unhighlightColor);
        }
        if (autoNodes.length > 0) {
        index = 0;
        autoNodes.eq(0).css("background-color", settings.highlightColor);
        }
        } else {
        if (index != -1) {
        autoNodes.eq(index).css("background-color", settings.unhighlightColor);
        }
        index = autoNodes.length - 1;
        autoNodes.eq(index).css("background-color", settings.highlightColor);
        }
        } else if (kc == keys.ENTER) {
        //回車鍵
        //有高亮內容就補全信息
        if (index != -1) {
        $this.val(autoNodes.eq(index).text());
        } else {//沒有就隱藏
        $("body").append($("").text("文本框中的【" + $this.val() + "】被提交了!"));
        $this.get(0).blur();
        }
        autoTip.hide();
        index = -1;
        } else if (kc == keys.ESC) {
        autoTip.hide();
        }
        }
        });
        })(jQuery);

        現(xiàn)在來分析上面的autocomplate插件的一些常用選項:
        index就是選擇提示選項高亮的索引;
        timeId是當用戶在文本域輸入時,利用setTimeout進行ajax請求服務器獲得數(shù)據(jù)的而返回的時間;
        cssOptions是自動提示選項的樣式,這里給出了一些默認的樣式;
        代碼如下:
        var defaults = {
        width: "auto",//默認或自動設置寬度
        highlightColor: "#3399FE",//高亮時的顏色
        unhighlightColor: "#FFFFFF",//非高亮時的顏色
        css: cssOptions,
        dataType: "xml",//ajax請求返回數(shù)據(jù)類型
        paramName: "word",//ajax請求的參數(shù)名稱,如果你有設置文本域的id,那么就使用這個屬性
        delay: 500,//當文本域在不停的輸入時,ajax多久請求一次服務器
        };

        keys就是鍵盤鍵對應的值;
        autocomplete就是調用的函數(shù),可以在里面設置ajax請求的url,以及配置上面defaults中出現(xiàn)的參數(shù),這個方法返回的是文本域的值;
        autoTipTemplate就是輸入時顯示的提示框、提示菜單,返回的是一個jquery對象;
        select是選擇提示菜單也就是下來提示菜單的高亮選項,target當然是目標對象了,index是即將被高亮的選項的索引,settings就是
        高亮的顏色配置,這個在默認defaults中就有的。是通過$.extend方法將defaults對象的屬性賦值給settings對象的;
        keyOperator是針對文本域的鍵盤操作,這個是核心函數(shù);操作提示、自動補全就靠它了;
        下面看看html代碼,看看是如何調用autocomplate插件的:
        代碼如下:



        Ajax示例,實現(xiàn)Google搜索補全功能



        聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        jQueryautocomplate自擴展插件、自動完成示例代碼_jquery

        jQueryautocomplate自擴展插件、自動完成示例代碼_jquery: 代碼如下: 不過做了瀏覽器方面的兼容,經(jīng)測試兼容IE6+、Firefox3.5+ 首先看看autocomplate.js: ;(function ($) { var index = -1; var timeId; var cssOptions = { border: 1px solid black, backgroun
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 91免费国产视频| 亚洲国产av玩弄放荡人妇| 国产精品美女免费视频观看| 国产美女无遮挡免费视频| 又黄又爽无遮挡免费视频| 色天使色婷婷在线影院亚洲| 免费精品国偷自产在线在线 | 国产成人人综合亚洲欧美丁香花 | 国产亚洲av片在线观看16女人| 亚洲人成电影院在线观看| 在线观看免费视频资源| 亚洲国产中文在线二区三区免| fc2免费人成在线视频| 国产亚洲成归v人片在线观看| 亚洲小说图区综合在线| 国产一区二区视频免费| 91亚洲国产成人精品下载| 一区二区视频在线免费观看| 国产亚洲精品激情都市| 99爱视频99爱在线观看免费| 亚洲一区免费视频| 国产精品成人四虎免费视频| xxxx日本在线播放免费不卡| 久久亚洲精品AB无码播放| 香蕉97超级碰碰碰免费公| 亚洲AV无码一区东京热| 久久久久久久免费视频| 国产偷国产偷亚洲高清在线| 国产亚洲av人片在线观看| 30岁的女人韩剧免费观看| 亚洲成AV人片在线播放无码| 免费无码午夜福利片| 亚洲成在人线av| 国产精品无码免费播放| 深夜免费在线视频| 亚洲视频国产视频| 亚洲高清偷拍一区二区三区| 最近免费mv在线电影| 91在线亚洲精品专区| 久久久精品2019免费观看| 亚洲国产成人久久综合碰碰动漫3d |