10

jqueryを使用して要素にフォーカスを設定するときに問題があるようです。明らかに、要素に設定された:focuscssプロパティをトリガーしません。

たとえば、私のcssには次のものがあります。

div.item1:focus { border:2px solid red; }

私のjqueryには次のものがあります:

$("div.item1").focus();

フォーカスは設定されていますが、要素に赤い境界線は適用されていません。

4

5 に答える 5

9

div:focus要素はセレクターを使用しません.. CSS2仕様を参照してください

:focus 疑似クラスは、要素にフォーカスがある間適用されます (キーボード イベントまたはその他の形式のテキスト入力を受け入れます)。

あなたはこれを行うことができます:

.hoverclass { border:2px solid red; }

$("div.item").hover(function() {
  $(this).addClass('hoverclass')
},function() {
  $(this).removeClass('hoverclass')
});

これは.hover().addClass()および.removeClass()

于 2012-06-28T12:32:10.707 に答える
4

focus()フォーム要素とリンクでのみ使用でき、他のタイプの要素で使用しようとすると機能しません。

詳細については、focus() の jQuery ドキュメントを参照してください。

于 2012-06-28T12:32:20.107 に答える
2

マニュアルから:

focus イベントは、要素がフォーカスを取得したときに送信されます。このイベントは、フォーム要素 ( 、 など) やリンク ( ) など、限られた一連の要素に暗黙的に適用さ<input><select>ます<a href>。最近のブラウザ バージョンでは、要素の tabindex プロパティを明示的に設定することで、イベントを拡張してすべての要素タイプを含めることができます。要素は、Tab キーなどのキーボード コマンドを使用するか、要素をマウスでクリックすることによって、フォーカスを得ることができます。

例については、この回答を参照してください: https://stackoverflow.com/a/5966034/1013082

于 2012-06-28T12:33:38.623 に答える
0

jQuery focus() ページに移動して、以下を参照してください。

focus イベントは、要素がフォーカスを取得したときに送信されます。このイベントは、フォーム要素 ( 、 など) やリンク ( ) など、限られた一連の要素に暗黙的に適用さ<input><select>ます<a href>。最近のブラウザ バージョンでは、要素の tabindex プロパティを明示的に設定することで、イベントを拡張してすべての要素タイプを含めることができます。要素は、Tab キーなどのキーボード コマンドを使用するか、要素をマウスでクリックすることによって、フォーカスを得ることができます。

PPK のブラウザに焦点を当てた調査はこちら

PPK フォーカス イベント ブラウザの互換性

すべてのブラウザーが tabindex テストに合格したようです。

于 2012-06-28T12:45:46.320 に答える
-1

これを行う必要があります:

$("div.item1").focus(function(){
        $("div.item1").css("border","2px solid red");
      });
于 2012-06-28T12:34:05.870 に答える