2016-10-03 7 views
0

マウスクリック時にボタンからフォーカスを削除するのに最適な方法はありますが、EnterキーをJavascriptで押した場合は表示されません。 clickイベントでblur()メソッドを使用していますが、動作しません。カスタムボタンはクリック時にフォーカスを削除しますが押していません

アクセシビリティ上の理由からoutline: noneまたはoutline: 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

アウトラインは、あなたがそれらを削除することができない場合、Iドンこれを引き起こすものである。詳細についてを参照してください。別の方法があるとは思わないよ –

+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>

関連する問題