2012-03-11 23 views
7

変更(またはぼかし)イベントを引き起こしたonchangeイベントハンドラ内で知りたいことがあります。 私はその目的のためのjQuery $(":focus")を使用しようとしましたが、jQueryので要素を取得し、JavaScriptで変更イベントを発生させました

$('.some_class').change(function (e) { 
    console.log(e.target); 
    console.log($(':focus').get(0)); // always `undefined`. 
    /* ......... other code......... */ 
}); 
+1

に(」。some_class')... – xandercoded

+0

$を全体のイベントハンドラを提供している要素を取得することができます。変更(機能(E){ \t \t \tコンソール.logの(e.target); \t \t \tはconsole.log($( ':フォーカス'。)(0)を取得); \t \t \t .........他のコードを..... .... \t \t}); – DotNetter

+0

@DotNetter答えにコードを入れてください – Andre

答えて

4

eventはあなたのイベントハンドラのコールバックへのパラメータは、元になるであればthisは、イベントハンドラとevent.targetで要素を指し、たとえば、子要素をクリックしてクリックが吹き上がった場合などです。

blurイベントの後にフォーカスイベントが発生するため、フォーカスのない要素がない期間が短くなります。これが本当に必要な場合は、短いタイムアウトを設定して、別のinputに、元のものがぼやけてから数ミリ秒後にフォーカスがあるかどうかを確認できます。

+0

はい、そうです。しかし、問題は、「この言葉は私のテキストボックスを指すが、フォーカスされた要素を指していない」ということです。 'イベント'私はちょうどそれを防ぐために使用します。 – DotNetter

6
$('.some_class').change(function (e) { 
console.log(e.target); 
console.log($(':focus').); // just remove the .get(0) 

}); はに.getを削除(0)、あなたが焦点に

+0

と私は何を得ますか?オブジェクトjQueryが空です – DotNetter

+0

要素がonblurなら、あなたは要素onfocusを得ることができます – Madao

+0

私は理解できません。関数 'get'はjQueryコレクション内のオブジェクトを返します。コレクションが空でない場合、 'get(0)'を呼び出すと、フォーカスされた要素を得ることができます。あなたはそれを削除することをなぜ勧めますか?それとも、私はどこかで間違っていますか? – DotNetter

関連する問題