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

首頁 > 編程 > JavaScript > 正文

onclick和onblur沖突問題的快速解決方法

2019-11-20 10:11:29
字體:
來源:轉載
供稿:網友

新浪首頁的搜索框里面有一個使用ajax的下拉框。我們需要實現一個點擊下拉框里面的一項,讓搜索框里面的值變成這一項,同時下拉框消失的效果,但同時在點擊其他地方的時候,這個下拉框也要消失。大致如圖:

新浪首頁下拉框


我們同時使用onblur和onclick來使下拉框隱藏,但是更大的問題出現了,這兩個功能相沖突,onblur過于強悍,根本沒有onclick方法實現的機會,搜索框無法獲取點擊項的內容。這個就是我們想要解決的onclick和onblur沖突問題。

對應這個問題,這里我們介紹兩種解決辦法:

1. 使用setTimeout來使onblur時間延期執行,使onclick執行完后再執行onblur。(其中setTimeout的時間設定應該在100ms以上,否則依舊不行)示例代碼如下:

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title></title>  <style>    *{ margin: 0; padding: 0; list-style: none; }    form{      width:500px;      margin:0 auto;      position:relative;      zoom:1;    }    form:after{      clear:both;      content:"";      display:block;    }    .text{      float:left;      border:1px solid #cccccc;      padding-left:14px;      width:300px;      height:34px;      line-height:34px;      font-size:14px;    }    .button{      width:50px;      height:34px;      border:1px solid #cccccc;      line-height:34px;      font-size:14px;      color:#ffffff;      background:#ff8400;    }    ul{      position:absolute;      top:36px;      left:0;      width:300px;      border-right:1px solid #cccccc;      border-left:1px solid #cccccc;      background:green;      display:none;    }    li{      font-size:14px;      line-height:34px;      height:34px;      color:#000000;      border-bottom:1px solid #cccccc;    }    li:hover{      background:yellow;      color:red;      cursor:pointer;    }  </style>  <script>    window.onload=function(){      var oText=document.getElementById('text');      var oUl=document.getElementById('ul');      var aLi=oUl.getElementsByTagName('li');      var timer=null;      oText.onfocus=function(){        this.value='';        oUl.style.display='block';        for(var i=0;i<aLi.length;i++){          aLi[i].onclick=function(){            clearTimeout(timer);            oText.value=this.innerHTML;            oUl.style.display='none';          };        }      };      oText.onblur=function(){        timer=setTimeout(function(){          oUl.style.display='none';          if(!oText.value){            oText.value='請輸入關鍵字';          }        },120);      };    };  </script>    </head><body><form>  <input type="text" value="請輸入關鍵字" id="text" class="text"/>  <input type="button" value="搜索" class="button"/>  <ul id="ul">    <li>返回窗口是否已被關閉</li>    <li>返回窗口的文檔顯示區的高度</li>    <li>返回窗口的文檔顯示區的寬度。</li>    <li>設置或返回窗口的名稱。</li>    <li>返回窗口的外部高度。</li>  </ul></form>  </body></html>

2. 使用document.onmousedown來代替onblur實現隱藏下拉框功能

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title></title>  <style>    *{ margin: 0; padding: 0; list-style: none; }    form{      width:500px;      margin:0 auto;      position:relative;      zoom:1;    }    form:after{      clear:both;      content:"";      display:block;    }    .text{      float:left;      border:1px solid #cccccc;      padding-left:14px;      width:300px;      height:34px;      line-height:34px;      font-size:14px;    }    .button{      width:50px;      height:34px;      border:1px solid #cccccc;      line-height:34px;      font-size:14px;      color:#ffffff;      background:#ff8400;    }    ul{      position:absolute;      top:36px;      left:0;      width:300px;      border-right:1px solid #cccccc;      border-left:1px solid #cccccc;      background:green;      display:none;    }    li{      font-size:14px;      line-height:34px;      height:34px;      color:#000000;      border-bottom:1px solid #cccccc;    }    li:hover{      background:yellow;      color:red;      cursor:pointer;    }  </style>  <script>    window.onload=function(){      var oText=document.getElementById('text');      var oUl=document.getElementById('ul');      var aLi=oUl.getElementsByTagName('li');      var timer=null;      oText.onfocus=function(){        this.value='';        oUl.style.display='block';        for(var i=0;i<aLi.length;i++){          aLi[i].onclick=function(){            clearTimeout(timer);            oText.value=this.innerHTML;            oUl.style.display='none';          };        }      };            document.onmousedown=function(ev){        var oEvent=ev||event;        var target=oEvent.target||oEvent.srcElement;          if(target.parentNode!==oUl&&target!==oText){            oUl.style.display='none';          }              };      oText.onblur=function(){        if(!oText.value){          oText.value='請輸入關鍵字';        }        };    };  </script>    </head><body><form>  <input type="text" value="請輸入關鍵字" id="text" class="text"/>  <input type="button" value="搜索" class="button"/>  <ul id="ul">    <li>返回窗口是否已被關閉</li>    <li>返回窗口的文檔顯示區的高度</li>    <li>返回窗口的文檔顯示區的寬度。</li>    <li>設置或返回窗口的名稱。</li>    <li>返回窗口的外部高度。</li>  </ul></form>  </body></html>

以上這篇onclick和onblur沖突問題的快速解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国内精品久久| 九色精品美女在线| 亚洲黄色www| 最近2019中文字幕大全第二页| 在线成人一区二区| 亚洲人成在线免费观看| 欧美精品福利在线| 曰本色欧美视频在线| 成人免费淫片视频软件| 一本色道久久综合狠狠躁篇的优点| 欧美大胆a视频| 成人福利在线视频| 福利精品视频在线| 98精品在线视频| 欧美激情一级欧美精品| 国产日韩欧美视频在线| 中文字幕一区二区精品| 美女精品久久久| 狠狠干狠狠久久| 国产精品国语对白| 成人美女免费网站视频| 亚洲人成在线观看| 亚洲免费电影一区| 亚洲精品成人网| 久久精品国产2020观看福利| 欧美色视频日本版| 久久精品国产精品亚洲| 精品国产网站地址| 91夜夜揉人人捏人人添红杏| 欧美电影免费观看电视剧大全| 国产精品色悠悠| 欧美大全免费观看电视剧大泉洋| 91色视频在线导航| 91精品国产高清自在线| 91精品美女在线| 欧美成人精品影院| 亚洲 日韩 国产第一| 色婷婷综合久久久久中文字幕1| 性欧美xxxx交| 亚洲久久久久久久久久久| 国产精品成人av在线| 久久人人爽人人爽人人片av高请| 欧美激情一级精品国产| 97在线精品视频| 亚洲香蕉成人av网站在线观看| 最近的2019中文字幕免费一页| 精品国产91久久久久久老师| 久久网福利资源网站| 国产国语videosex另类| 热久久这里只有| 欧美精品久久一区二区| 欧美日韩中文字幕在线视频| 97碰碰碰免费色视频| 亚洲精品一区二区在线| 精品久久中文字幕| 日韩av不卡电影| 国产精品免费久久久| 欧美中文字幕精品| 国产欧美日韩丝袜精品一区| 国产一区二区三区高清在线观看| 中文字幕av一区| 欧美成aaa人片在线观看蜜臀| 国产日韩欧美电影在线观看| 中文字幕欧美视频在线| 欧美亚洲激情视频| 7777免费精品视频| 欧美成人精品激情在线观看| 热re91久久精品国99热蜜臀| 欧美一区二区三区四区在线| 激情懂色av一区av二区av| 91精品国产色综合久久不卡98| 久久久999精品| 国产亚洲一级高清| 91av在线不卡| 中文字幕在线看视频国产欧美在线看完整| 91九色在线视频| 国产成人福利夜色影视| 亚洲午夜久久久影院| 国产精品白嫩初高中害羞小美女| 日韩网站在线观看| 国产精品午夜一区二区欲梦| 亚洲一区二区三区视频| 国产精品成人久久久久| 精品亚洲va在线va天堂资源站| 国产精品日韩欧美综合| 久热精品在线视频| 欧美人在线视频| 久久影院模特热| 欧美激情在线有限公司| 一区二区日韩精品| 色综合视频网站| zzijzzij亚洲日本成熟少妇| 欧美激情按摩在线| 精品久久久久久亚洲精品| 国产精品jvid在线观看蜜臀| 欧美日韩国产限制| 欧美日本国产在线| 午夜精品美女自拍福到在线| 亚洲女成人图区| 这里只有精品在线播放| 国产精品jvid在线观看蜜臀| 97视频国产在线| 亚洲人精选亚洲人成在线| 在线观看日韩欧美| xxx欧美精品| 黄色成人av在线| 日韩欧美aⅴ综合网站发布| 欧美极品少妇全裸体| 91人成网站www| 日韩不卡中文字幕| 亚洲国产精品一区二区久| 在线观看日韩www视频免费| 久久香蕉频线观| 亚洲美女视频网站| 亚洲淫片在线视频| 乱亲女秽乱长久久久| 日韩精品视频在线播放| 欧美高跟鞋交xxxxxhd| 国产精品h片在线播放| 91在线观看免费| 亚洲国产日韩欧美在线动漫| 中文字幕少妇一区二区三区| www.国产一区| 欧美在线性爱视频| 正在播放亚洲1区| 久久人人爽人人爽人人片av高清| 国产精品一区二区久久久| 日韩亚洲精品电影| 日韩美女在线播放| 国产精品久久中文| 欧美精品videossex性护士| 91福利视频在线观看| 亚洲成年人影院在线| 欧美午夜片在线免费观看| 韩曰欧美视频免费观看| 色综合久久久888| 日韩高清电影免费观看完整版| 亚洲精品ady| 欧美日韩第一视频| 97香蕉超级碰碰久久免费软件| 精品成人乱色一区二区| 97人人做人人爱| 久久久国产一区| 欧美日韩在线视频首页| 久久国产精品久久久久| 97av在线播放| 久久黄色av网站| 日韩a**中文字幕| 久久手机免费视频| 自拍偷拍亚洲一区| 亚洲视频axxx| 成人av.网址在线网站| 亚洲天堂开心观看| 亚洲97在线观看| 欧美夫妻性生活xx| 国产精品视频久| 欧美日韩中文在线| 国产精品jizz在线观看麻豆| 亚洲欧美日韩高清| 亚洲永久在线观看| 国产欧美精品在线播放| 日本aⅴ大伊香蕉精品视频| 精品小视频在线| 精品色蜜蜜精品视频在线观看|