2016-04-18 209 views
1

想知道你是否可以幫助我。我有多個tabs.I一個頁面上有多個輸入想左+右箭頭更改選項卡,但只有在頁面上沒有輸入是重點只有當沒有輸入焦點時才做點什麼

document.onkeydown = checkKey; 

function checkKey(e) { 

    e = e || window.event; 

    if (NO_INPUTS_IN_FOCUS) { 
     if (e.keyCode == '37') { 
      // left arrow 
     } 
     else if (e.keyCode == '39') { 
      // right arrow 
     } 
    } 

} 

讚賞任何幫助,謝謝。

回答

4

對於您的情況:

if (!($("input").is(":focus"))) {  
    NO_INPUTS_IN_FOCUS = true;  
} 

else { 
    NO_INPUTS_IN_FOCUS = false; 
} 
+0

這很有效,令人驚訝 - 可以寫成'NO_INPUTS_IN_FOCUS =!$(「input」)。is(「:focus」) - 它不起作用爲textareas和選擇,除非你加上那些 – mplungjan

+0

完美的,除了沒有後檢查 - ,謝謝! –

1

嘗試

document.onkeydown = checkKey; 

function checkKey(e) { 

    e = e || window.event; 
    var target = e.target || e.srcElement, 
     tag = target.tagName.toLowerCase(); 

    if (tag != "input" && tag.indexOf("select") ==-1 && tag != "textarea") { 
     if (e.keyCode == '37') { 
      // left arrow 
     } 
     else if (e.keyCode == '39') { 
      // right arrow 
     } 
    } 

} 
+0

那是一個有趣的方式來做到這一點感謝分享!在這種情況下,我將採用jquery選項,但我已經學到了新的東西 –

相關問題