<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                項目中遇到用Tab鍵、方向鍵切換頁面控件焦點的問題,Tab鍵控制比較容易實現,只要依次在想要控制焦點順序的控件標簽上添加屬性TabIndex和TabStop兩個屬性,TabIndex屬性值從1開始根據控制順序依次遞增,TabStop值設為"True"。而要實現方向鍵的控制,還是費了一番周折。 首先從網上查找資料,得到一個獲取頁面所有Input類型控件的方法: http://www.poluoluo.com/jzxy/201208/172374.html 但經過嘗試,這種方法并不能解決頁面中存在其他類型控件的問題,比如碰到select類型控件時,焦點切換就會出現混亂,以至于達不到想要的效果。 尋找利用其他方法獲取頁面中的元素,最后根據前輩提示,可以利用JQuery的選擇器來實現,JQuery當時還沒有接觸,所以找了相關資料,解決了此問題,改進后的JS代碼如下(以下是兩列輸入或選擇控件,豎向切換焦點情況的實現): ~~~ function keyDown(event) { var inputs = $(".txt") var focus = document.activeElement; if (!document.getElementById("mm").contains(focus)) return; var event = window.event || event; var key = event.keyCode; for (var i = 0; i < inputs.length; i++) { if (inputs[i] === focus) { break; } } switch (key) { case 38: if (i - 2 >= 0) inputs[i - 2].focus(); break; case 40: if (i + 2 < inputs.length) inputs[i + 2].focus(); break; case 13: event.returnValue = false;//阻止自動提交 if (i + 2 < inputs.length) inputs[i + 2].focus(); break; } } ~~~ 只需在html代碼中引進JQuery,并在需要獲取的元素中設置class值為"txt"即可獲取所有控件。但還是存在不足,當頁面中有disabled屬性為true的情況下,使用方向鍵也會出現錯亂的情況。再次進行改進,加入必要邏輯判斷,最終得出如下結局方案: ~~~ //方向鍵控制頁面控件焦點移動 function keyDown(event) { var inputs = $(".txt") //通過class屬性值獲取控件組合 var focus = document.activeElement; //得到處于激活狀態的控件 if (!document.getElementById("mm").contains(focus)) return; //判斷是否包含激活控件在指定的Table下 var event = window.event || event; //獲取事件 var key = event.keyCode; //得到按下的鍵盤Ascii碼 var flag = -1; //得到激活控件在組合中的具體位置 for (var i = 0; i < inputs.length; i++) { if (inputs[i] === focus) { break; } } switch (key) { case 38: //向上鍵 var j = i - 2; var flag = false; if (inputs.get(j).disabled == false) { //判斷接下來得到的焦點控件是否能夠使用 flag = true; } else { for (j=i-4; j >= 0; j=j-2) { //之后控件不能獲得焦點情況下尋找下一個控件 if (inputs.get(j).disabled == false) { //判斷之后焦點是否可以獲取焦點 flag = true; break; } } } if (flag) { inputs[j].focus(); } break; case 40: //向下鍵 var j = i + 2; var flag = false; if (inputs.get(j).disabled == false) { //判斷接下來得到的焦點控件是否能夠使用 flag = true; } else { for (j = i + 4; j < inputs.length; j = j + 2) { //之后控件不能獲得焦點情況下尋找下一個控件 if (inputs.get(j).disabled == false) { //判斷之后焦點是否可以獲取焦點 flag = true; break; } } } if (flag) { inputs[j].focus(); } break; case 13: //回車鍵 event.returnValue = false; //阻止自動提交 var j = i + 2; var flag = false; if (inputs.get(j).disabled == false) { flag = true; } else { for (j = i + 4; j <= inputs.length - 1; j = j + 2) { if (inputs.get(j).disabled == false) { flag = true; break; } } } if (flag) { inputs[j].focus(); } break; } } ~~~ 至此,解決了實現中存在的主要問題,考慮到左右方向鍵可以在輸入字符中切換光標位置,則在處理過程中沒有加入左右鍵切換控件焦點的功能。回想用戶提出此功能的需求,同設計軟件一致,是要提高工作效率,避免鼠標、鍵盤之間的來回切換,也由此找到一份[WEB交互界面易用性設計和驗收的指導性原則](http://blog.csdn.net/mz24/article/details/413028)僅供參考學習。 總結:項目中總會遇到各種各樣的問題,有問題不可怕,可怕的是不努力想辦法去解決它,而是消極應對。把每一個問題當作一次學習、提高的機會,這樣的項目驅動才是真正我們要達到的目的,才剛剛開始做項目,保持一份積極的態度去學習、研究,抓住每一次的學習機會,項目即是學習。 文中的問題伴隨了我幾天的時間,最后通過自己的努力解決,其實更重要的收獲是改變了一些我的觀念,讓自己始終保持興奮的狀態去抓住身邊每個學習的機會。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看