4

カーソルのフォーカスがテキスト フィールドにない場合に何かを行うサファリ拡張機能を作成しようとしています。ただし、フォーカスがテキスト フィールドにないかどうかを検出する次のコードは機能しません。

    if ($(document.activeElement).attr("type") != "text" 
       && $(document.activeElement).attr("type") != "textarea") {
          ..do something
    }
4

3 に答える 3

15

シンプルにしてください:

var el = document.activeElement;

if (el && (el.tagName.toLowerCase() == 'input' && el.type == 'text' ||
    el.tagName.toLowerCase() == 'textarea')) {
  // focused element is a text input or textarea
} 
于 2012-04-27T03:15:47.533 に答える
1

これを達成するためにjqueryを使用できます

$('input[type="text"]').focus(function() {
   alert('Focused');
});
于 2012-04-27T01:59:13.667 に答える
-2
$("input[type=text]").filter(":not(:focus)").css("background","#ff0000");

$("input[type=text]").focus(function(){
    $(this).css("background","#ffffff");
});

$("input[type=text]").blur(function(){
    $(this).css("background","#ff0000");
});

すべての非アクティブな入力の背景を赤に設定する必要があります。(Chrome 18で作業)

于 2012-04-27T02:17:35.643 に答える