LoginSignup
5
1

More than 5 years have passed since last update.

【js】firefoxでfocusイベントが動かない

Last updated at Posted at 2018-01-14

概要

キー入力があった際に、フォーカスを変えるということをしたかったのですが、安直にはいかなかったたので回避策を書く。(考察しながら書いてますが、間違っている部分もあるかと思います。)

どうしてこうなるのか

firefoxではイベント中に別のイベントを呼び出すことができない模様。
そのため、onkeydown()のイベント中で別のイベントのfocus()を呼び出すことができない。

回避策

setTimeout(function(){
  セレクタ名.focus()
},0);

onkeydown()のイベントからfocus()の部分をsettimeoutを使うことで非同期処理にしてあげ、onkeydown()からfocus()が発生する状況を擬似的に回避してあげる。
settimeoutには、0を指定しているが失敗する場合は50や100などにしてfocus()が発生するタイミングを遅らせてあげる。

参考資料

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1