【js】firefoxでfocusイベントが動かない
1074 ワード
概要
キー入力があった際に、フォーカスを変えるということをしたかったのですが、安直にはいかなかったたので回避策を書く。(考察しながら書いてますが、間違っている部分もあるかと思います。)
どうしてこうなるのか
firefoxではイベント中に別のイベントを呼び出すことができない模様。
そのため、onkeydown()のイベント中で別のイベントのfocus()を呼び出すことができない。
回避策
setTimeout(function(){
セレクタ名.focus()
},0);
setTimeout(function(){
セレクタ名.focus()
},0);
onkeydown()のイベントからfocus()の部分をsettimeoutを使うことで非同期処理にしてあげ、onkeydown()からfocus()が発生する状況を擬似的に回避してあげる。
settimeoutには、0を指定しているが失敗する場合は50や100などにしてfocus()が発生するタイミングを遅らせてあげる。
参考資料
Author And Source
この問題について(【js】firefoxでfocusイベントが動かない), 我々は、より多くの情報をここで見つけました https://qiita.com/mk-tool/items/4db8c91603b7c165d909著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .