2016-12-25 22 views
2

私はこれを持っています極端な単純なクリックイベント、inputがフォーカスされている場合は、inputにクラスを追加することになっています。入力がフォーカスされているときにクラスを追加しない

しかし、それはクラスを追加する必要はありません。私はjQueryライブラリを必ず含んでいますが、何も起こりません。

jQueryの

$("body").on("click", function(){ 
    if($("input").is(":focus")){ 
     $(this).addClass("highlight-input"); 
    } else { 
     $(this).removeClass("highlight-input"); 
    } 
}); 
+0

なぜあなたはすべての入力中かどうかを確認しようとしていますあなたのページは集中していますか? 1つの要素だけがフォーカスを持つことができます。これは**常に**間違いです。 –

+0

の代わりにjQueryのは、 'CSSを使用します。 – Tushar

+0

@Tushar焦点とホバーfocus' ... –

答えて

2

あなたがこの方法を使用する必要があります:あなたのコードで

$(document).ready(function() { 
    $("input").on("focus", function() { 
    $(this).addClass("highlight-input"); 
    }).on("blur", function() { 
    $(this).removeClass("highlight-input"); 
    }); 
}); 
+1

はすでにこれを試してみましたが、私は一瞬 –

+0

@Caelan ...あなたのコードで再度試してみます。その間違いを何回も –

+0

ええ(笑)を忘れてはいけません。作品? –

2

を - thisbody元素を示し、あなたが$(this).addClass("highlight-input");を使用するときは、にhighlight-inputクラスを追加body要素。

$("body").on("click", function(){ 
 
    if($("input").is(":focus")){ 
 
     debugger; 
 
     $(this).addClass("highlight-input"); 
 
    } else { 
 
     $(this).removeClass("highlight-input"); 
 
    } 
 
});
.highlight-input { 
 
    background: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input />

これは、あなたが探しているものがより可能性が高いです。

$('input').on('focus', function() { 
 
    $(this).addClass("highlight-input"); 
 
}).on('blur', function() { 
 
    $(this).removeClass("highlight-input"); 
 
});
.highlight-input { 
 
    background: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input />

+0

クラスをボディに追加します! :( –

+0

正しい。私はそれが動作すると言ったが、私はこれが彼が見ていたものであるか分からない:)慎重に読んでください。 – Dekel

+0

は、私がよくお読み: 'あなたが完了:) –

関連する問題