1

これについて何か助けていただければ幸いです。キーアップ時に動的に作成されたテキスト入力のサイズを変更しようとしています。これを基本的なレベルで機能させることはできますが、同じクラスを持つ個々の入力のサイズを変更するのに問題があります。つまり、個々の入力フィールドのサイズを変更するだけでなく、クラス ".question" を持つすべてのテキスト入力のサイズを変更しています。

これが私のコードです:

function resizeInput(theInputField) {
  var getInputWidth = $(theInputField).width();
  if(getInputWidth < 400){
    $(theInputField).attr('size', $(theInputField).val().length);
  }
}

$('#question-list').on('keyup', '.question', function(){
  resizeInput('.question');
});

$('#question-list') --> これは ul 要素です。

$('.question') --> 上記の ul で動的に作成された input[type="text"] です。

4

1 に答える 1

1

イベント ハンドラーでthisは、イベントをトリガーした要素です。次のようなことができます。

function resizeInput($theInputField) {      
  var inputWidth = $theInputField.width();
  if(inputWidth < 400){
    $theInputField.attr('size', $theInputField.val().length);
  }
}

$('#question-list').on('keyup', '.question', function(){
  resizeInput($(this));
});
于 2013-10-13T04:07:15.370 に答える