2011-06-19 44 views
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

可能是第二個你的代碼已經更像這樣了(並且在我看來更容易閱讀 –

0

使用jQuery afterinsertAfter是什麼;)

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'包裝了, –