2017-11-23 18 views
0

に同じ時間で実行されているクリックボタンがぼかしを取得したとき、私は、タブ・キーをキーボードでナビゲートしながら2つの異なる振る舞いjQueryのフォーカスと要素

  1. を持っているのボタンを持っているボタン1
  2. にフォーカスを移動する必要があります
  3. 我々は、それがボタンにフォーカスを移動する必要があります2

ケース1が正常に動作しているが、我々はボタン2にキーフォーカスが移動を入力し、ボタン1に移動打ったとき、ここで私はぼかしを見つけ、Enterキーヒットまた、Enterボタンを押すと呼び出されて、関心関数が呼び出されます。私の目標を達成する方法はありますか?

$('#btn').on('focus', function(){ 
    }).on('blur', function(){ 
     setTimeout(function() { 
      $('.span-hlo')[0].focus(); 
     },250); 
}); 
$('#btn').on('click', function(){ 
setTimeout(function() { 
    $('.span-welcome')[0].focus(); 
    },250); 
}); 

Fiddle example

+1

'のようなあなたのjqueryのを更新します。 –

+0

とにかく250の低速タイムアウトを使用している場合は、最後にやりたいものを260にしてみませんか? –

+0

@ freedomn-mも動作していません –

答えて

0

コントロールがフォーカスを失ったときに必ず呼び出されblur`この

var lastClick = null; 
$('#btn').mousedown(function(e) { 
    lastClick = e.target; 
}).focus(function(e){ 
    if (e.target == lastClick) { 
     $('.span-welcome')[0].focus(); 
    } else { 
     $('.span-hlo')[0].focus();  
    } 
    lastClick = null; 

}); 
+0

これでblurを使用するには? :( –

関連する問題