亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

js寫的可以跨瀏覽器運行的彈出列表框

2024-09-06 12:31:26
字體:
來源:轉載
供稿:網友

本文通過制作一個機票出發城市與到達城市的下拉框的效果講解了閉包操作。

效果不錯。但不足的地方是在于彈出下拉框時,框體與文本框的對齊問題解決的不太理想,基本上換個位置就得重新在代碼里手動設置個偏移值,一直沒有想到什么好的解決方案,不知道各位有什么好的主意。

下面就是具體的代碼:

css的代碼:

 <style type="text/css"> 

 #oyesgo_city_popping
{
  display: none;
  position: absolute;
  z-index: 9999;
  background-color: rgb(255, 255, 255);
   width: 254px;
   height: 140px;
  border: 1px solid rgb(0, 128, 0);

#oyesgo_city_popping h3 {
   border-bottom:1px solid #C4D3E6;
    color:#5E5E5E;
  font-size:12px;
font-weight:normal;
line-height:200%;
   margin:0 auto;
  width:94%;

#oyesgo_city_popping  ul {
  margin-top:7px;
overflow:hidden;
width:300px;
 padding-left: 0px;
  margin-top: 0px;

#oyesgo_city_popping ul li {
    float:left; line-height:190%;
   text-align:center;
  width:17%;
  list-style-type:none;
   font-size:10pt;

.arr_btn_close{ position: absolute; right: 9px; top: 5px; cursor:pointer; } 

 </style> 

html代碼:

 <div> 
出 發:<input name="depcity" autocomplete="off" style="width: 98px;" id="dep" > 
到 達:<input name="arrcity" autocomplete="off" style="width: 98px;" id="arr"> 
</div> 

<div name="cityframe" id="oyesgo_city_popping" > 
     <h3>熱門城市</h3> 
        <ul></ul> 
        <a title="close" id="oyesgo_city_closewin" class="arr_btn_close">x</a> 
</div> 

<input style="display:none;" id="oyesgo_hidden_input"> 

 javascript代碼:

<script> 
   //城市框點擊事件,顯示熱門城市div 
    function fun(){ 
         var event = this; 
         var eleobj = document.getElementById('oyesgo_city_popping'); 
        //初始化城市列表li 
         var ulobj = eleobj.getElementsByTagName("ul")[0]; 
         ulobj.innerHTML = ''; 
         var lifacObj = lifactory(event); 
         var allcity = { 
               'depcity':'北京 上海 廣州 深圳 杭州 南京 成都 武漢 青島 大連 重慶 三亞 鄭州 寧波 西安 長沙 昆明 沈陽 廈門 哈爾濱'.split(' '),//出發城市 
               'arrcity':'北京 上海 廣州 深圳 杭州 南京 成都 武漢 青島 大連 重慶 三亞 鄭州 寧波 西安 長沙 巴黎 紐約 東京 新加坡'.split(' ') //到達城市 
       } 

        cityarry=allcity[event.name]; 
        for (var i=0; i<cityarry.length; i++) { 
             var liobj=lifacObj(cityarry[i],eleobj); 
             ulobj.appendChild(liobj); 
         }; 
         //顯示城市選擇框 
         //eleobj.style.display='block'; 
         openCitySelectFrame(event); 

    } 

    //li工廠 
    function lifactory(ele){ 
         //attachEvent 
        var func=function(name,cityframe){ 
             var liobj=document.createElement("li"); 
             liobj.innerHTML='<a  style="cursor:pointer;">'+name+'</a>'; 
             var aobj=liobj.getElementsByTagName('a')[0]; 
             appendEventListener.call(aobj,'click',function(){ 
                 //城市點擊后,將對應城市名稱填入框中 
                 ele.value=name; 
                 //城市選擇框關閉 
                 closeCitySelectFrame(ele); 
             }); 
             return liobj; 
         }; 
         return func; 
     } 
     //增加事件 
     function appendEventListener(eventtype,func){ 
        if (this.addEventListener) { 
             this.addEventListener(eventtype, func, false); 
         } 
         else if (this.attachEvent) { 
                eventtype='on'+eventtype; 
                this.attachEvent(eventtype, func); 
         } 
     } 

     //關閉城市選擇框 
     function closeCitySelectFrame(){ 
         try { 
             var cityframe = document.getElementById('oyesgo_city_popping'); 
             cityframe.style.display = 'none'; 
             if (!!cityframe.inputeleobj) { 
                 cityframe.inputeleobj.focus(); 
             } 
             //從自定義屬性中移除文本框 
             cityframe.inputeleobj = null; 
         }catch(e){} 
     } 

    //開啟城市選擇框 
     function openCitySelectFrame(inputele){ 
         if(!inputele){ 
             return; 
         } 
         var cityframe=document.getElementById('oyesgo_city_popping'); 
        //移動框的左邊界與input框的邊界一致 
         try { 
             cityframe.style.left = (inputele.offsetLeft) + 'px';                     
         }catch(e){ 
             cityframe.style.left = inputele.posLeft; 
         } 
        cityframe.style.display='block'; 
         //將文本框對象添加到自定義屬性 
         cityframe.inputeleobj=inputele; 
     } 

    //為城市框添加事件 
     (function(){ 
         var depele=document.getElementById('dep'); 
         var arrele=document.getElementById('arr'); 
         var elearray=[depele,arrele]; 
        var eleobj=document.getElementById('oyesgo_city_popping'); 
         for (var i=0; i<elearray.length; i++) { 
            elearray[i].onclick=fun; 
         }; 
         //對彈出框中的小叉號添加關閉事件 
         var closebutton=document.getElementById('oyesgo_city_closewin'); 
         appendEventListener.call(closebutton,'click',function(){ 
             closeCitySelectFrame(); 
         }); 
         //添加doc click事件 
         appendEventListener.call(document,'click',function(){ 
             var eleobj=document.activeElement; 
             var namefun={'depcity':true,    'arrcity':true,'cityframe':true}; 
             if(!namefun[eleobj.name]){ 
                 closeCitySelectFrame(); 
             } 
         }); 
           
     })(); 
</script>

代碼不是算太多,但能夠很好地跨瀏覽器運行(Chrome /firefox / ie6,7,8)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美裸体xxxxx| 亚洲成人网久久久| 亚洲人成在线观看| 欧美日韩精品国产| 91sao在线观看国产| 北条麻妃99精品青青久久| 国产精品久久久av久久久| 日韩欧美精品中文字幕| www.日韩欧美| 国产女人精品视频| 国产日韩在线视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 97国产精品免费视频| 亚洲男人第一av网站| 午夜精品99久久免费| 欧美日韩福利视频| 欧美高清不卡在线| 亚洲国产精品久久精品怡红院| 日韩免费不卡av| 国产精品欧美日韩| 欧美福利在线观看| 97视频在线观看免费| 亚洲免费av片| 欧美影院成年免费版| 精品欧美一区二区三区| 国产精品久久视频| xxx一区二区| 亚洲国产日韩欧美在线99| 欧美日韩中文在线| 日韩最新中文字幕电影免费看| 亚洲最新av网址| 国产亚洲欧美日韩一区二区| 日韩av影院在线观看| 亚洲大胆美女视频| 久久天堂电影网| 亚洲欧美国产一本综合首页| 国内精品免费午夜毛片| 日韩欧美在线国产| 国产亚洲精品高潮| 青草成人免费视频| 亚洲老头老太hd| 午夜精品一区二区三区在线视| 色婷婷久久av| 精品视频久久久| 2019国产精品自在线拍国产不卡| 久久久久在线观看| 欧美激情在线观看| 中文字幕日韩在线视频| 亚洲国产精品久久久久秋霞不卡| 欧美精品久久久久久久久久| 成人在线播放av| 欧美日韩中文在线观看| 欧美亚洲在线观看| 97免费中文视频在线观看| 国产精品中文在线| 亚洲精品久久久久中文字幕欢迎你| 国产精品第3页| 日韩av在线直播| 日韩美女在线看| 久久天堂av综合合色| 精品视频www| 成人黄色av免费在线观看| 国产高清视频一区三区| 国产精品久久久久久久久久新婚| 亚洲欧美国产制服动漫| 欧美激情一区二区三区在线视频观看| 精品久久中文字幕久久av| 国产欧美精品一区二区三区介绍| 中文字幕欧美国内| 国产日韩欧美视频在线| 久久激情视频免费观看| 欧美在线免费视频| 亚洲福利视频在线| 国产亚洲精品久久久久久777| 97人洗澡人人免费公开视频碰碰碰| 亚洲视频一区二区| 91精品国产91久久久久福利| 日韩成人性视频| 色综合天天狠天天透天天伊人| 国产精品黄色影片导航在线观看| 亚洲国产精品成人va在线观看| 精品呦交小u女在线| 国产成人福利视频| 国产成人在线一区| 热99精品只有里视频精品| 日韩精品中文字幕在线| 欧美日韩激情视频| 国产精品自拍视频| 91在线视频精品| 亚洲国模精品一区| 久久影视电视剧免费网站| 亚洲欧洲黄色网| 国产一区二区三区直播精品电影| 国产精品免费福利| 亚洲区一区二区| 日韩在线中文视频| 日韩电视剧在线观看免费网站| 欧洲s码亚洲m码精品一区| 国产精品自拍偷拍| 亚洲人午夜精品| 国产在线观看精品一区二区三区| 一区三区二区视频| 亚洲国产美女精品久久久久∴| 亚洲丝袜av一区| 日韩av大片免费看| 亚洲精品美女在线| 成人免费观看49www在线观看| 美女av一区二区三区| 亚洲va男人天堂| 欧美精品999| 欧美成人一二三| 欧美限制级电影在线观看| 欧美疯狂性受xxxxx另类| 亚洲精品日韩在线| 在线看国产精品| 亚洲成人av中文字幕| 亚洲最大激情中文字幕| 91精品久久久久久久久不口人| 欧美成人午夜免费视在线看片| 亚洲一区二区三区四区在线播放| 欧美激情一二三| 国产一区二区三区在线免费观看| 欧美激情二区三区| 亚洲人成电影在线播放| 欧美精品在线免费观看| 91九色在线视频| 日韩经典中文字幕| 日韩美女av在线| 日韩欧美主播在线| 中文.日本.精品| 久久久久久网站| 精品国偷自产在线视频| 日韩欧美在线免费观看| 性欧美暴力猛交69hd| 高清一区二区三区日本久| 国产一区二区三区欧美| 国产欧美日韩精品在线观看| 国产精品三级久久久久久电影| 亚洲国产高潮在线观看| 欧美电影在线观看| 欧美福利小视频| 亚洲欧洲xxxx| 91精品在线观看视频| 最近2019好看的中文字幕免费| 最新中文字幕亚洲| 91精品国产综合久久男男| 欧美综合激情网| 亚洲一区二区少妇| 亚洲国产又黄又爽女人高潮的| 国产在线观看精品| 欧美日韩在线观看视频| 亚洲精品中文字幕女同| 国产成人精品一区二区| 久久亚洲精品网站| 亚洲精品日韩av| 国内伊人久久久久久网站视频| 久色乳综合思思在线视频| 精品久久久久久久久久久久| 亚洲视频在线免费看| 理论片在线不卡免费观看| 精品久久久久久久久久ntr影视| 日韩av在线精品| 精品免费在线视频| 日韩成人在线视频|