0

オートフォーカス後に機能をトリガーすることは可能ですか? 試してみましたが、テキストエリアがオートフォーカスになったら、クリックして離れてから、テキストエリアをもう一度クリックして関数をトリガーする必要があります

私のコードは:

$('#test').focus();
$('#test').focus(function() {
  alert('ok');
});
4

3 に答える 3

3

コードを入れ替えてみてください。最初に呼び出したときにイベントがテスト要素に添付されていませんでしたfocus()

$('#test').focus(function() {
  alert('ok');
});
$('#test').focus();
于 2013-02-21T15:24:34.950 に答える
1

これは、フォーカスを設定した後にトリガーを設定しているためです。

コードを再配置すると、これは正常に機能します。

于 2013-02-21T15:24:46.653 に答える
0

.focus() メソッドには、渡されるパラメーターに基づいて 2 つの異なる意味があります。

あなたの最初の声明で。

$('#test').focus();

これは、ID テストで要素にフォーカスを設定しています。

しかし、あなたの2番目の声明

$('#test').focus(function() {
   alert('ok');
});

ここで起こっているのは、jQuery が要素のフォーカス イベントにイベント ハンドラーをアタッチしていることです。DOM がロードされたときにイベント ハンドラーを追加し、必要に応じて .focus() イベントを呼び出すことをお勧めします (アラートがトリガーされます)。

$(function(){
   $('#test').focus(function() {
       alert('ok');
   });
});
于 2013-02-21T15:28:46.343 に答える