2011-06-19 7 views
1

与えられたテキスト入力フィールドの1つに戻りながらヒットした場合は、その直下に新しい空白のテキスト入力フィールドを挿入しようとしています。以下のコードは、コンテナの下部に追加する際にはうまく動作しますが、選択した入力フィールドのすぐ下に配置する方法には苦労しています。jquery - クローニングされたオブジェクトの位置付け

提案がありますか?

JS

if (event.keyCode == 13) { 

    $(this).clone(true).val('').appendTo('#item_container').focus(); 
    return false; 

} 

HTML

<div id="item_container"> 
     <input type="text" class="list_item"> 
     <input type="text" class="list_item"> 
        <input type="text" class="list_item"> 
        <input type="text" class="list_item"> 
</div> 

答えて

0

使用after

$(this).after($(this).clone(true).val('')).focus(); 

またはinsertAfter

$(this).clone(true).val('').insertAfter(this).focus(); 
+0

おそらく2番目のあなたのコードは既にそれに似ています(そして、私の意見では読みやすくなります) –

0

使用するためのjQuery afterまたはinsertAfter;)一度に

var target = $(this) 
var copy = target.clone(); 
target.after(copy) 
copy.val('').focus(); 

または全て:

$(this).after($(this).clone().val('').focus()); 

これは新しい要素にフォーカスを設定し、クリア

又は

$(this).after($(this).clone()).val('').focus(); 

これにフォーカスを設定し、古い素子

fiddle here

1
if (event.keyCode == 13) { 

    $(this).clone(true).val('').insertAfter(this).focus(); 
    return false; 

} 
0

はjQueryの、すなわち、フォーカスのあるアイテムを見つけるために使用することができる:focusセレクタを有する

クリア
$("#item_container input:focus") 
+0

彼はすでに全ての入力に 'event'リスナーを添付していますので、これは既に' this'でラップされているので不要です –

関連する問題