国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home php教程 PHP源碼 Multi-city selector implementation code

Multi-city selector implementation code

Dec 28, 2016 pm 01:40 PM
city ??selector


需求 : 熱門城市、列表中的城市都需要在數(shù)據(jù)庫中查詢出來后構(gòu)建列表,并按a-z排列,輸入字母可以實現(xiàn)查詢。

多城市選擇器實現(xiàn)效果圖

Multi-city selector implementation code實現(xiàn):

1 后臺根據(jù)登錄用戶獲取列表中城市和熱門城市的數(shù)據(jù)

@RequestMapping(value = "/getCity.do")
 2     public void getCity(PrintWriter printWriter, HttpServletResponse response)
 3     {
 4         response.setContentType("text/html;charset=UTF-8");
 5         User user = this.getLoginUser();
 6         //查詢出系統(tǒng)登陸人所有的所屬區(qū)域名稱
 7       String allCity = getAllCityProperty(user.getId(), "areaName");
 8       String hotCity = getHotCity(allCity);
 9       JSONObject json = new JSONObject();        
10         json.accumulate("hotCity",hotCity);
11         json.accumulate("allCity",allCity);
12         printWriter.print(json.toString());
13         printWriter.flush();
14         printWriter.close();
15     }

2 前臺打開界面的時候通過ajax獲取城市和熱門城市

 1 window.onload=function(){    
 2        var url = "/xxx/getCity.do";
 3          var params = {};
 4          $.getJSON(url,params,function(data){
 5              if(data.length==0)
 6              {
 7                   $.messager.alert('提示',"未找到數(shù)據(jù)");
 8              }else{
 9                   var hotString = data.hotCity;
10                   var allString = data.allCity;
11                 new Vcity.CitySelector({input:'city'},allString,hotString);
12                 }               
13         });
14 }

3 citys.js 根據(jù)百度上的城市選擇組件 新增熱門城市和城市變量

/* *
 * ---------------------------------------- *
 * 城市選擇組件 v1.0
 * Author: zcx
 * ---------------------------------------- *
 * Date: 2016-05-17
 * ---------------------------------------- *
 * */
/* *
 * 全局空間 Vcity
 * */
var Vcity = {};
/* *
 * 靜態(tài)方法集
 * @name _m
 * */
Vcity._m = {
    /* 選擇元素 */
    $:function (arg, context) {
        var tagAll, n, eles = [], i, sub = arg.substring(1);
        context = context || document;
        if (typeof arg == 'string') {
            switch (arg.charAt(0)) {
                case '#':
                    return document.getElementById(sub);
                    break;
                case '.':
                    if (context.getElementsByClassName) return context.getElementsByClassName(sub);
                    tagAll = Vcity._m.$('*', context);
                    n = tagAll.length;
                    for (i = 0; i < n; i++) {
                        if (tagAll[i].className.indexOf(sub) > -1) eles.push(tagAll[i]);
                    }
                    return eles;
                    break;
                default:
                    return context.getElementsByTagName(arg);
                    break;
            }
        }
    },
    /* 綁定事件 */
    on:function (node, type, handler) {
        node.addEventListener ? node.addEventListener(type, handler, false) : node.attachEvent(&#39;on&#39; + type, handler);
    },
    /* 獲取事件 */
    getEvent:function(event){
        return event || window.event;
    },
    /* 獲取事件目標 */
    getTarget:function(event){
        return event.target || event.srcElement;
    },
    /* 獲取元素位置 */
    getPos:function (node) {
        var scrollx = document.documentElement.scrollLeft || document.body.scrollLeft,
            scrollt = document.documentElement.scrollTop || document.body.scrollTop;
        var pos = node.getBoundingClientRect();
        return {top:pos.top + scrollt, right:pos.right + scrollx, bottom:pos.bottom + scrollt, left:pos.left + scrollx }
    },
    /* 添加樣式名 */
    addClass:function (c, node) {
        if(!node)return;
        node.className = Vcity._m.hasClass(c,node) ? node.className : node.className + &#39; &#39; + c ;
    },
    /* 移除樣式名 */
    removeClass:function (c, node) {
        var reg = new RegExp("(^|\\s+)" + c + "(\\s+|$)", "g");
        if(!Vcity._m.hasClass(c,node))return;
        node.className = reg.test(node.className) ? node.className.replace(reg, &#39;&#39;) : node.className;
    },
    /* 是否含有CLASS */
    hasClass:function (c, node) {
        if(!node || !node.className)return false;
        return node.className.indexOf(c)>-1;
    },
    /* 阻止冒泡 */
    stopPropagation:function (event) {
        event = event || window.event;
        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;
    },
    /* 去除兩端空格 */
    trim:function (str) {
        return str.replace(/^\s+|\s+$/g,&#39;&#39;);
    }
};
/* 正則表達式 篩選中文城市名、拼音、首字母 */
Vcity.regEx = /^([\u4E00-\u9FA5\uf900-\ufa2d]+)\|(\w+)\|(\w)\w*\|(\d+)$/i;
Vcity.regExChiese = /([\u4E00-\u9FA5\uf900-\ufa2d]+)/;
function adapterCity (citylist,hotStr) {
    if(!citylist){
        return;
    }
    var citys = citylist;
    var match;
    var letter;
    var regEx = Vcity.regEx,
        reg2 = /^[a]$/i, reg3 = /^[b]$/i, reg4 = /^[c]$/i;
        reg5 = /^[d]$/i, reg6 = /^[e]$/i, reg7 = /^[f]$/i;
        reg8 = /^[g]$/i, reg9 = /^[h]$/i, reg10 = /^[i]$/i;
        reg11 = /^[j]$/i, reg12 = /^[k]$/i, reg13 = /^[l]$/i;
        reg14 = /^[m]$/i, reg15 = /^[n]$/i, reg16 = /^[o]$/i;
        reg17 = /^[p]$/i, reg18 = /^[q]$/i, reg19 = /^[r]$/i;
        reg20 = /^[s]$/i, reg21 = /^[t]$/i, reg22 = /^[u]$/i;
        reg23 = /^[v]$/i, reg24 = /^[w]$/i, reg25 = /^[x]$/i;
        reg26 = /^[y]$/i, reg27 = /^[z]$/i;
    //if (!Vcity.oCity) {
        Vcity.oCity = {hot:{},A:{},B:{},C:{},D:{},E:{},F:{},G:{},H:{}, I:{},J:{},K:{},L:{},M:{},N:{},O:{},P:{}, Q:{},R:{},S:{},T:{},U:{},V:{},W:{},X:{},Y:{},Z:{}};
        //console.log(citys.length);
        for (var i = 0; i < citys.length; i++) {
            match = regEx.exec(citys[i]);
            letter = match[3].toUpperCase();
            if (reg2.test(letter)) {
                if (!Vcity.oCity.A[letter]) Vcity.oCity.A[letter] = [];
                Vcity.oCity.A[letter].push(match[1]);
            } else if (reg3.test(letter)) {
                if (!Vcity.oCity.B[letter]) Vcity.oCity.B[letter] = [];
                Vcity.oCity.B[letter].push(match[1]);
            } else if (reg4.test(letter)) {
                if (!Vcity.oCity.C[letter]) Vcity.oCity.C[letter] = [];
                Vcity.oCity.C[letter].push(match[1]);
            }else if (reg5.test(letter)) {
                if (!Vcity.oCity.D[letter]) Vcity.oCity.D[letter] = [];
                Vcity.oCity.D[letter].push(match[1]);
            }else if (reg6.test(letter)) {
                if (!Vcity.oCity.E[letter]) Vcity.oCity.E[letter] = [];
                Vcity.oCity.E[letter].push(match[1]);
            }else if (reg7.test(letter)) {
                if (!Vcity.oCity.F[letter]) Vcity.oCity.F[letter] = [];
                Vcity.oCity.F[letter].push(match[1]);
            }else if (reg8.test(letter)) {
                if (!Vcity.oCity.G[letter]) Vcity.oCity.G[letter] = [];
                Vcity.oCity.G[letter].push(match[1]);
            }else if (reg9.test(letter)) {
                if (!Vcity.oCity.H[letter]) Vcity.oCity.H[letter] = [];
                Vcity.oCity.H[letter].push(match[1]);
            }else if (reg10.test(letter)) {
                if (!Vcity.oCity.I[letter]) Vcity.oCity.I[letter] = [];
                Vcity.oCity.I[letter].push(match[1]);
            }else if (reg11.test(letter)) {
                if (!Vcity.oCity.J[letter]) Vcity.oCity.J[letter] = [];
                Vcity.oCity.J[letter].push(match[1]);
            }else if (reg12.test(letter)) {
                if (!Vcity.oCity.K[letter]) Vcity.oCity.K[letter] = [];
                Vcity.oCity.K[letter].push(match[1]);
            }else if (reg13.test(letter)) {
                if (!Vcity.oCity.L[letter]) Vcity.oCity.L[letter] = [];
                Vcity.oCity.L[letter].push(match[1]);
            }else if (reg14.test(letter)) {
                if (!Vcity.oCity.M[letter]) Vcity.oCity.M[letter] = [];
                Vcity.oCity.M[letter].push(match[1]);
            }else if (reg15.test(letter)) {
                if (!Vcity.oCity.N[letter]) Vcity.oCity.N[letter] = [];
                Vcity.oCity.N[letter].push(match[1]);
            }else if (reg16.test(letter)) {
                if (!Vcity.oCity.O[letter]) Vcity.oCity.O[letter] = [];
                Vcity.oCity.O[letter].push(match[1]);
            }else if (reg17.test(letter)) {
                if (!Vcity.oCity.P[letter]) Vcity.oCity.P[letter] = [];
                Vcity.oCity.P[letter].push(match[1]);
            }else if (reg18.test(letter)) {
                if (!Vcity.oCity.Q[letter]) Vcity.oCity.Q[letter] = [];
                Vcity.oCity.Q[letter].push(match[1]);
            }else if (reg19.test(letter)) {
                if (!Vcity.oCity.R[letter]) Vcity.oCity.R[letter] = [];
                Vcity.oCity.R[letter].push(match[1]);
            }else if (reg20.test(letter)) {
                if (!Vcity.oCity.S[letter]) Vcity.oCity.S[letter] = [];
                Vcity.oCity.S[letter].push(match[1]);
            }else if (reg21.test(letter)) {
                if (!Vcity.oCity.T[letter]) Vcity.oCity.T[letter] = [];
                Vcity.oCity.T[letter].push(match[1]);
            }else if (reg22.test(letter)) {
                if (!Vcity.oCity.U[letter]) Vcity.oCity.U[letter] = [];
                Vcity.oCity.U[letter].push(match[1]);
            }else if (reg23.test(letter)) {
                if (!Vcity.oCity.V[letter]) Vcity.oCity.V[letter] = [];
                Vcity.oCity.V[letter].push(match[1]);
            }else if (reg24.test(letter)) {
                if (!Vcity.oCity.W[letter]) Vcity.oCity.W[letter] = [];
                Vcity.oCity.W[letter].push(match[1]);
            }else if (reg25.test(letter)) {
                if (!Vcity.oCity.X[letter]) Vcity.oCity.X[letter] = [];
                Vcity.oCity.X[letter].push(match[1]);
            }else if (reg26.test(letter)) {
                if (!Vcity.oCity.Y[letter]) Vcity.oCity.Y[letter] = [];
                Vcity.oCity.Y[letter].push(match[1]);
            }else if (reg27.test(letter)) {
                if (!Vcity.oCity.Z[letter]) Vcity.oCity.Z[letter] = [];
                Vcity.oCity.Z[letter].push(match[1]);
            }
            /* 熱門城市 */
                if(!Vcity.oCity.hot[&#39;hot&#39;]) Vcity.oCity.hot[&#39;hot&#39;] = hotStr;
            
        }
    //}
};
/* 城市HTML模板 */
/* 城市HTML模板 */
Vcity._template = [
    &#39;<p class="tip">熱門城市(支持漢字/拼音)</p>&#39;,
    &#39;<ul>&#39;,
    &#39;<li class="on">熱門城市</li>&#39;,
    &#39;<li>A</li>&#39;,
    &#39;<li>B</li>&#39;,
    &#39;<li>C</li>&#39;,
    &#39;<li>D</li>&#39;,
    &#39;<li>E</li>&#39;,
    &#39;<li>F</li>&#39;,
    &#39;<li>G</li>&#39;,
    &#39;<li>H</li>&#39;,
    &#39;<li>I</li>&#39;,
    &#39;<li>J</li>&#39;,
    &#39;<li>K</li>&#39;,
    &#39;<li>L</li>&#39;,
    &#39;<li>M</li>&#39;,
    &#39;<li>N</li>&#39;,
    &#39;<li>O</li>&#39;,
    &#39;<li>P</li>&#39;,
    &#39;<li>Q</li>&#39;,
    &#39;<li>R</li>&#39;,
    &#39;<li>S</li>&#39;,
    &#39;<li>T</li>&#39;,
    &#39;<li>U</li>&#39;,
    &#39;<li>V</li>&#39;,
    &#39;<li>W</li>&#39;,
    &#39;<li>x</li>&#39;,
    &#39;<li>y</li>&#39;,
    &#39;<li>Z</li>&#39;,
    &#39;</ul>&#39;
];
/* 城市HTML模板 */
/*Vcity._template = [
    &#39;<p class="tip">熱門城市(支持漢字/拼音)</p>&#39;,
    &#39;<ul>&#39;,
    &#39;<li class="on">熱門城市</li>&#39;,
    &#39;<li>ABCDEFGH</li>&#39;,
    &#39;<li>IJKLMNOP</li>&#39;,
    &#39;<li>QRSTUVWXYZ</li>&#39;,
    &#39;</ul>&#39;
];*/
/* *
 * 城市控件構(gòu)造函數(shù)
 * @CitySelector
 * */
Vcity.CitySelector = function () {
    this.initialize.apply(this, arguments);
};
Vcity.CitySelector.prototype = {
    constructor:Vcity.CitySelector,
    /* 初始化 */
    initialize :function (options,istr,hotStr) {
        var input = options.input;
        this.input = Vcity._m.$(&#39;#&#39;+ input);
        
        this.inputEvent(istr,hotStr);
        
    },
    /* *
     * @createWarp
     * 創(chuàng)建城市BOX HTML 框架
     * */
    createWarp:function(cwstr,hotStr){
        var inputPos = Vcity._m.getPos(this.input);
        var p = this.rootDiv = document.createElement(&#39;p&#39;);
        var that = this;
        // 設(shè)置DIV阻止冒泡
        Vcity._m.on(this.rootDiv,&#39;click&#39;,function(event){
            Vcity._m.stopPropagation(event);
        });
        // 設(shè)置點擊文檔隱藏彈出的城市選擇框
        Vcity._m.on(document, &#39;click&#39;, function (event) {
            event = Vcity._m.getEvent(event);
            var target = Vcity._m.getTarget(event);
            if(target == that.input) return false;
            //console.log(target.className);
            if (that.cityBox)Vcity._m.addClass(&#39;hide&#39;, that.cityBox);
            if (that.ul)Vcity._m.addClass(&#39;hide&#39;, that.ul);
            if(that.myIframe)Vcity._m.addClass(&#39;hide&#39;,that.myIframe);
        });
        p.className = &#39;citySelector&#39;;
        p.style.position = &#39;absolute&#39;;
        p.style.left = inputPos.left + &#39;px&#39;;
        p.style.top = inputPos.bottom + &#39;px&#39;;
        p.style.zIndex = 999999;
        // 判斷是否IE6,如果是IE6需要添加iframe才能遮住SELECT框
        var isIe = (document.all) ? true : false;
        var isIE6 = this.isIE6 = isIe && !window.XMLHttpRequest;
        if(isIE6){
            var myIframe = this.myIframe =  document.createElement(&#39;iframe&#39;);
            myIframe.frameborder = &#39;0&#39;;
            myIframe.src = &#39;about:blank&#39;;
            myIframe.style.position = &#39;absolute&#39;;
            myIframe.style.zIndex = &#39;-1&#39;;
            this.rootDiv.appendChild(this.myIframe);
        }
        var childp = this.cityBox = document.createElement(&#39;p&#39;);
        childp.className = &#39;cityBox&#39;;
        childp.id = &#39;cityBox&#39;;
        childp.innerHTML = Vcity._template.join(&#39;&#39;);
        var hotCity = this.hotCity =  document.createElement(&#39;p&#39;);
        hotCity.className = &#39;hotCity&#39;;
        childp.appendChild(hotCity);
        p.appendChild(childp);
        this.createHotCity(cwstr,hotStr);
    },
    /* *
     * @createHotCity
     * TAB下面DIV:hot,a-h,i-p,q-z 分類HTML生成,DOM操作
     * {HOT:{hot:[]},ABCDEFGH:{a:[1,2,3],b:[1,2,3]},IJKLMNOP:{},QRSTUVWXYZ:{}}
     **/
    createHotCity:function(chstr,hotStr){
          adapterCity (chstr,hotStr);
        var op,odl,odt,odd,odda=[],str,key,ckey,sortKey,regEx = Vcity.regEx,
            oCity = Vcity.oCity;
        for(key in oCity){
            op = this[key] = document.createElement(&#39;p&#39;);
            // 先設(shè)置全部隱藏hide
            op.className = key + &#39; &#39; + &#39;cityTab hide&#39;;
            sortKey=[];
            for(ckey in oCity[key]){
                sortKey.push(ckey);
                // ckey按照ABCDEDG順序排序
                sortKey.sort();
            }
            for(var j=0,k = sortKey.length;j<k;j++){
                odl = document.createElement(&#39;dl&#39;);
                odt = document.createElement(&#39;dt&#39;);
                odd = document.createElement(&#39;dd&#39;);
                odt.innerHTML = sortKey[j] == &#39;hot&#39;?&#39; &#39;:sortKey[j];
                odda = [];
                for(var i=0,n=oCity[key][sortKey[j]].length;i<n;i++){
                    str = &#39;<a href="javascript:">&#39; + oCity[key][sortKey[j]][i] + &#39;</a>&#39;;
                    odda.push(str);
                }
                odd.innerHTML = odda.join(&#39;&#39;);
                odl.appendChild(odt);
                odl.appendChild(odd);
                op.appendChild(odl);
            }
            // 移除熱門城市的隱藏CSS
            Vcity._m.removeClass(&#39;hide&#39;,this.hot);
            this.hotCity.appendChild(op);
        }
        document.body.appendChild(this.rootDiv);
        /* IE6 */
        this.changeIframe();
        this.tabChange();
        this.linkEvent();
    },
    /* *
     *  tab按字母順序切換
     *  @ tabChange
     * */
    tabChange:function(){
        var lis = Vcity._m.$(&#39;li&#39;,this.cityBox);
        var ps = Vcity._m.$(&#39;p&#39;,this.hotCity);
        var that = this;
        for(var i=0,n=lis.length;i<n;i++){
            lis[i].index = i;
            lis[i].onclick = function(){
                for(var j=0;j<n;j++){
                    Vcity._m.removeClass(&#39;on&#39;,lis[j]);
                    Vcity._m.addClass(&#39;hide&#39;,ps[j]);
                }
                Vcity._m.addClass(&#39;on&#39;,this);
                Vcity._m.removeClass(&#39;hide&#39;,ps[this.index]);
                /* IE6 改變TAB的時候 改變Iframe 大小*/
                that.changeIframe();
            };
        }
    },
    /* *
     * 城市LINK事件
     *  @linkEvent
     * */
    linkEvent:function(){
        var links = Vcity._m.$(&#39;a&#39;,this.hotCity);
        var that = this;
        for(var i=0,n=links.length;i<n;i++){
            links[i].onclick = function(){
                that.input.value = this.innerHTML;
                Vcity._m.addClass(&#39;hide&#39;,that.cityBox);
                /* 點擊城市名的時候隱藏myIframe */
                Vcity._m.addClass(&#39;hide&#39;,that.myIframe);
            }
        }
    },
    /* *
     * INPUT城市輸入框事件
     * @inputEvent
     * */
    inputEvent:function(iestr,hotStr){
        var that = this;
        Vcity._m.on(this.input,&#39;click&#39;,function(event){
            event = event || window.event;
            if(!that.cityBox){
                that.createWarp(iestr,hotStr);
            }else if(!!that.cityBox && Vcity._m.hasClass(&#39;hide&#39;,that.cityBox)){
                // slideul 不存在或者 slideul存在但是是隱藏的時候 兩者不能共存
                if(!that.ul || (that.ul && Vcity._m.hasClass(&#39;hide&#39;,that.ul))){
                    Vcity._m.removeClass(&#39;hide&#39;,that.cityBox);
                    /* IE6 移除iframe 的hide 樣式 */
                    //alert(&#39;click&#39;);
                    Vcity._m.removeClass(&#39;hide&#39;,that.myIframe);
                    that.changeIframe();
                }
            }
        });
        Vcity._m.on(this.input,&#39;focus&#39;,function(){
            that.input.select();
            if(that.input.value == &#39;城市名&#39;) that.input.value = &#39;&#39;;
        });
        Vcity._m.on(this.input,&#39;blur&#39;,function(){
            if(that.input.value == &#39;&#39;) that.input.value = &#39;城市名&#39;;
        });
        Vcity._m.on(this.input,&#39;keyup&#39;,function(event){
            event = event || window.event;
            var keycode = event.keyCode;
            Vcity._m.addClass(&#39;hide&#39;,that.cityBox);
            that.createUl(iestr);
            /* 移除iframe 的hide 樣式 */
            Vcity._m.removeClass(&#39;hide&#39;,that.myIframe);
            // 下拉菜單顯示的時候捕捉按鍵事件
            if(that.ul && !Vcity._m.hasClass(&#39;hide&#39;,that.ul) && !that.isEmpty){
                that.KeyboardEvent(event,keycode);
            }
        });
    },
    /* *
     * 生成下拉選擇列表
     * @ createUl
     * */
    createUl:function (iestr) {
        if(!iestr){
            return;
        }
        //console.log(&#39;createUL&#39;);
        var str;
        var value = Vcity._m.trim(this.input.value);
        // 當value不等于空的時候執(zhí)行
        if (value !== &#39;&#39;) {
            var reg = new RegExp("^" + value + "|\\|" + value, &#39;gi&#39;);
            var searchResult = [];
            /* *
             *【修改5】
             * 這里原本是遍歷Vcity.allCity,現(xiàn)在改用citylist
             * zcx 2016-5-17
             */
            
            for (var i = 0; i < iestr.length; i++) {
                if (reg.test(iestr[i])) {
                    var match = Vcity.regEx.exec(iestr[i]);
                    if (searchResult.length !== 0) {
                        str = &#39;<li><b class="cityname">&#39; + match[1] + &#39;</b><b class="cityspell">&#39; + match[2] + &#39;</b></li>&#39;;
                    } else {
                        str = &#39;<li class="on"><b class="cityname">&#39; + match[1] + &#39;</b><b class="cityspell">&#39; + match[2] + &#39;</b></li>&#39;;
                    }
                    searchResult.push(str);
                }
            }
            this.isEmpty = false;
            // 如果搜索數(shù)據(jù)為空
            if (searchResult.length == 0) {
                this.isEmpty = true;
                str = &#39;<li class="empty">對不起,沒有找到數(shù)據(jù) "<em>&#39; + value + &#39;</em>"</li>&#39;;
                searchResult.push(str);
            }
            // 如果slideul不存在則添加ul
            if (!this.ul) {
                var ul = this.ul = document.createElement(&#39;ul&#39;);
                ul.className = &#39;cityslide&#39;;
                this.rootDiv && this.rootDiv.appendChild(ul);
                // 記錄按鍵次數(shù),方向鍵
                this.count = 0;
            } else if (this.ul && Vcity._m.hasClass(&#39;hide&#39;, this.ul)) {
                this.count = 0;
                Vcity._m.removeClass(&#39;hide&#39;, this.ul);
            }
            this.ul.innerHTML = searchResult.join(&#39;&#39;);
            /* IE6 */
            this.changeIframe();
            // 綁定Li事件
            this.liEvent();
        }else{
            Vcity._m.addClass(&#39;hide&#39;,this.ul);
            Vcity._m.removeClass(&#39;hide&#39;,this.cityBox);
            Vcity._m.removeClass(&#39;hide&#39;,this.myIframe);
            this.changeIframe();
        }
    },
    /* IE6的改變遮罩SELECT 的 IFRAME尺寸大小 */
    changeIframe:function(){
        if(!this.isIE6)return;
        this.myIframe.style.width = this.rootDiv.offsetWidth + &#39;px&#39;;
        this.myIframe.style.height = this.rootDiv.offsetHeight + &#39;px&#39;;
    },
    /* *
     * 特定鍵盤事件,上、下、Enter鍵
     * @ KeyboardEvent
     * */
    KeyboardEvent:function(event,keycode){
        var lis = Vcity._m.$(&#39;li&#39;,this.ul);
        var len = lis.length;
        switch(keycode){
            case 40: //向下箭頭↓
                this.count++;
                if(this.count > len-1) this.count = 0;
                for(var i=0;i<len;i++){
                    Vcity._m.removeClass(&#39;on&#39;,lis[i]);
                }
                Vcity._m.addClass(&#39;on&#39;,lis[this.count]);
                break;
            case 38: //向上箭頭↑
                this.count--;
                if(this.count<0) this.count = len-1;
                for(i=0;i<len;i++){
                    Vcity._m.removeClass(&#39;on&#39;,lis[i]);
                }
                Vcity._m.addClass(&#39;on&#39;,lis[this.count]);
                break;
            case 13: // enter鍵
                this.input.value = Vcity.regExChiese.exec(lis[this.count].innerHTML)[0];
                Vcity._m.addClass(&#39;hide&#39;,this.ul);
                Vcity._m.addClass(&#39;hide&#39;,this.ul);
                /* IE6 */
                Vcity._m.addClass(&#39;hide&#39;,this.myIframe);
                break;
            default:
                break;
        }
    },
    /* *
     * 下拉列表的li事件
     * @ liEvent
     * */
    liEvent:function(){
        var that = this;
        var lis = Vcity._m.$(&#39;li&#39;,this.ul);
        for(var i = 0,n = lis.length;i < n;i++){
            Vcity._m.on(lis[i],&#39;click&#39;,function(event){
                event = Vcity._m.getEvent(event);
                var target = Vcity._m.getTarget(event);
                that.input.value = Vcity.regExChiese.exec(target.innerHTML)[0];
                Vcity._m.addClass(&#39;hide&#39;,that.ul);
                /* IE6 下拉菜單點擊事件 */
                Vcity._m.addClass(&#39;hide&#39;,that.myIframe);
            });
            Vcity._m.on(lis[i],&#39;mouseover&#39;,function(event){
                event = Vcity._m.getEvent(event);
                var target = Vcity._m.getTarget(event);
                Vcity._m.addClass(&#39;on&#39;,target);
            });
            Vcity._m.on(lis[i],&#39;mouseout&#39;,function(event){
                event = Vcity._m.getEvent(event);
                var target = Vcity._m.getTarget(event);
                Vcity._m.removeClass(&#39;on&#39;,target);
            })
        }
    }
}

更多Multi-city selector implementation code請關(guān)注PHP中文網(wǎng)(www.miracleart.cn)其它文章!


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1502
276