<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • JavaScript組件開發(fā)之輸入框加候選框的示例分析-創(chuàng)新互聯(lián)

            這篇文章主要為大家展示了“JavaScript組件開發(fā)之輸入框加候選框的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“JavaScript組件開發(fā)之輸入框加候選框的示例分析”這篇文章吧。

            創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元齊齊哈爾做網(wǎng)站,已為上家服務(wù),為齊齊哈爾各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

            1.兼容ie8 主要是事件兼容

            var EventUtil = {
               on:function(elem,type,handler){
                if(elem.addEventListener){
                 elem.addEventListener(type,handler,false);
                }else if(elem.attachEvent){
                 elem.attachEvent("on"+type,handler);
                }
               },
               getEvent:function(event){
                return event||window.event;
               },
               getTarget:function(event){
                return event.target||event.srcElement;
               },
               getCharCode:function(event){
                if(typeof event.handler == "number"){
                 return event.charCode;
                }else{
                 return event.keyCode;
                }
               }
              }

            2.對于候選框里面的內(nèi)容使用事件代理,以及點擊空白處消失

            EventUtil.on(document.body,'click',function(e){
               stopPropagation(e);
               if(EventUtil.getTarget(e).nodeName=='BODY'){
                datalist.style.visibility = 'hidden';
                datalist.innerHTML ='';
               }
               if(EventUtil.getTarget(e).nodeName == "LI"){
                input.value = EventUtil.getTarget(e).innerHTML;
                datalist.style.visibility = 'hidden';
                datalist.innerHTML ='';
               }
              })

            3.兼容模式下的防止冒泡

             function stopPropagation(e){
               e = window.event||e;
               if(document.all){
                e.cancelBubble = true;
               }else{
                e.stopPropagation();
               }
              }

            4.效果圖

            JavaScript組件開發(fā)之輸入框加候選框的示例分析

            5.完整代碼

            <!DOCTYPE html>
            <html>
             <head>
              <meta charset="utf-8">
              <title></title>
              <style media="screen">
               html,body{margin: 0;padding: 0;height: 100%;width: 100%;}
               input{
                width: 200px;
                border:1px solid grey;
                padding: 0 2px;
                line-height: 1.5rem;
                box-sizing: border-box;
                outline: none;
               }
               ul{
                margin:0;
                width: 200px;
                padding: 0;
                list-style: none;
                box-sizing: border-box;
                padding: 1px;
                border:1px solid;
                border-color: grey;
                visibility: hidden;
               }
               li{
                line-height: 1.5rem;
                padding: 0 0 0 1px;
               }
               li:hover{
                background-color: grey;
               }
               .section{
                top:30%;
                left:50%;
                position: absolute;
                margin-left: -100px;
               }
              </style>
             </head>
             <body>
             <div class="section">
               <input id="search"/>
               <ul id="datalist">
               </ul>
             </div>
             </body>
             <script type="text/javascript">
              var EventUtil = {
               on:function(elem,type,handler){
                if(elem.addEventListener){
                 elem.addEventListener(type,handler,false);
                }else if(elem.attachEvent){
                 elem.attachEvent("on"+type,handler);
                }
               },
               getEvent:function(event){
                return event||window.event;
               },
               getTarget:function(event){
                return event.target||event.srcElement;
               },
               getCharCode:function(event){
                if(typeof event.handler == "number"){
                 return event.charCode;
                }else{
                 return event.keyCode;
                }
               }
              }
              function stopPropagation(e){
               e = window.event||e;
               if(document.all){
                e.cancelBubble = true;
               }else{
                e.stopPropagation();
               }
              }
              var input = document.getElementById('search');
              var datalist = document.getElementById('datalist');
              var list_array = ['aa','aab','abc'];
              function generatelist(array){
               var _innerHTML = '';
               for (var i = 0; i < array.length; i++) {
                _innerHTML += '<li>'+array[i]+'</li>';
               }
               datalist.innerHTML = _innerHTML;
              }
              function findInArray(s){
               var filter_array = [];
               if(s!=''){
                for (var i = 0; i < list_array.length; i++) {
                 if(list_array[i].indexOf(s)===0){
                  filter_array.push(list_array[i])
                 }
                }
               }
               return filter_array;
              }
              input.onkeyup = function(){
               var new_array = findInArray(this.value);
               generatelist(new_array);
               if(new_array.length>0){
                setTimeout(function(){datalist.style.visibility = 'visible';},0);
               }else{
                setTimeout(function(){datalist.style.visibility = 'hidden';},0);
               }
              }
              EventUtil.on(document.body,'click',function(e){
               stopPropagation(e);
               if(EventUtil.getTarget(e).nodeName=='BODY'){
                datalist.style.visibility = 'hidden';
                datalist.innerHTML ='';
               }
               if(EventUtil.getTarget(e).nodeName == "LI"){
                input.value = EventUtil.getTarget(e).innerHTML;
                datalist.style.visibility = 'hidden';
                datalist.innerHTML ='';
               }
              })
             </script>
            </html>

            以上是“JavaScript組件開發(fā)之輸入框加候選框的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

            另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.jbt999.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

            本文題目:JavaScript組件開發(fā)之輸入框加候選框的示例分析-創(chuàng)新互聯(lián)
            文章路徑:http://www.jbt999.com/article4/cdejoe.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站改版、域名注冊、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            成都app開發(fā)公司

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 亚州视频免费不卡 | 日韩二级片视频 | 国产亚洲精品色爽无码 | 男女啪啪啪免费网站 | 青娱乐人人草 |