17

多くの DOM 要素はフォーカス可能です: tabIndex を持つ div、input 要素など。無数の異なるケースをチェックするよりも、要素がフォーカス可能かどうかをチェックする簡単な方法はありますか? これにはjQueryメソッドがありますか?

4

1 に答える 1

8

ここから「翻訳された」回答:どの HTML 要素がフォーカスを受け取ることができますか?

  • <a>または<area>_href
  • 無効になっていないフォーム要素
  • iframe
  • を持つ任意の要素tabindex

さらに、隠し要素もフォーカスできないと思います。

その条件を想定すると、次の関数が役立つ場合があります (常に jQuery 要素を受け取ると仮定します)。

function canFocus( $el ) {
    if ( $el.is( ":hidden" ) || $el.is( ":disabled" ) ) {
        return false;
    }

    var tabIndex = +$el.attr( "tabindex" );
    tabIndex = isNaN( tabIndex ) ? -1 : tabIndex;
    return $el.is( ":input, a[href], area[href], iframe" ) || tabIndex > -1;
}
于 2013-08-15T21:06:58.850 に答える