0

次のコードは、テキスト入力をフォーカスのあるウェルに追加し、入力が null の場合は非表示にします。問題は、元の入力フィールドに対してのみ機能することです。生成された 2 番目の入力フィールドは、フォーカス時にこの機能をアクティブにしません。理由はありますか?

$('input:text')
.on('focus', function()
{
  var $this = $(this);
  if ($this.val() == "")
  {
    numItems++;
    $($this.parent().append($('<input type="text" value ="" id="item' + numItems + '"></input>')));
  }
})
.on('blur', function()
{
  var $this = $(this);
  if ($this.val() == "")
  {
    $this.hide();
  }
});
4

2 に答える 2

1

変更してみてください:

$('input:text')
.on('focus', function()

$(document)
.on('focus','input:text', function()
于 2013-02-25T03:04:41.233 に答える
1

または、入力が追加されている直接の親に委任することもできます。

$("#parentOfInput").on('focus','input:text', function(){
    //Handler
});

これは、@sudhir の回答よりもわずかに効率的です。

これにより、イベントがドキュメント ルートに到達する前に確実にインターセプトされます。

于 2013-02-25T03:09:37.897 に答える