2016-10-03 93 views
0

什麼是最好的方法來刪除從鼠標點擊按鈕的焦點,但不是當使用Javascript按下Enter鍵時?我在click事件上使用blur()方法,但這不起作用。自定義按鈕刪除焦點點擊,但不是在輸入按鍵

請注意,由於輔助功能的原因,我不能使用outline: noneoutline: 0。欲瞭解更多信息請參閱:http://www.outlinenone.com/

var button = document.getElementById("btn"); 
 
button.addEventListener("click", removeFocus); 
 

 
function removeFocus(event) { 
 
\t event.target.blur(); 
 
}
button { 
 
    display: inline-block; 
 
    border: none; 
 
    height: 36px; 
 
    line-height:36px; 
 
    padding: 0 12px; 
 
    background: cyan; 
 
}
<button id="btn"> 
 
    Hello 
 
</button>

+1

大綱是什麼原因造成這一點,如果你不能刪除它們,我不不認爲有另一種方式 –

+1

我不認爲這是準確的。 stackoverflow網站本身就是這樣做的。嘗試點擊在stackoverflow的頭上的任何項目,你不會看到任何大綱樣式,並嘗試使用鍵盤導航和點擊,你會看到一個。 – takeradi

回答

2

JavaScript解決方案

var button = document.getElementById("btn"); 
 
button.addEventListener("click", clickEvent); 
 
button.addEventListener("keypress", clickEvent); 
 
function clickEvent(event){ 
 
    if (event.keyCode == 13) { 
 
    event.preventDefault(); 
 
    } else { 
 
    button.blur(); 
 
    } 
 
}
button { 
 
    display: inline-block; 
 
    border: none; 
 
    height: 36px; 
 
    line-height:36px; 
 
    padding: 0 12px; 
 
    background: cyan; 
 
}
<button id="btn"> 
 
    Hello 
 
</button>