2011-07-17 48 views
0

當你添加一個事件時,last.fm有這個漂亮的功能。你有藝術家字段,當你開始輸入時,另一個文本字段出現在它下面。當你開始在下一個字段中輸入時,另一個新的字段出現在下面等等。我一直在試圖弄清楚如何使用jquery來模仿這個功能,但是我可以使它只在第一個固定的字段上工作。有任何想法嗎?如何在按下某個鍵時在下面創建新的文本字段?

編輯:

實際上,不,它甚至不是固定的一個工作,因爲它增加了在每個按鍵

EDIT2領域:

alrighty,所以一些細微的人已經解決了我的添加問題,現在,如何才能在第一次按下按鍵之後添加字段。

回答

1

您可能只會將您的處理程序綁定到第一個靜態輸入,而不是動態創建的處理程序。使用.live()來進行事件綁定。這將把事件綁定到與選擇器匹配的未來元素。

爲了確保您只添加一個新的,請確保只在鍵入上一個文本框時添加它。檢查$(this).closest(".container").next(".container").length以確保沒有新的文本框。

$("input.myClass").live("keyup", function (e) { 
    var $container = $(this).closest(".container"); 
    if (this.value && !$container.next(".container").length) { 
     var $newContainer $("<div>").insertAfter($container).addClass("container"); 
     ... 
    } 
}); 
+0

更好yet-'$( 「input.myClass:最後一個」)'。 – evan

+0

令人驚歎,它非常簡單。謝謝!至少解決了添加部分。 – Valhallen

+0

埃文謝謝,照顧它! – Valhallen

0

Live是正確的想法,但最接近的是矯枉過正:jsFiddle

$("input").live("keyup", function(){ 
if (!$(this).next('input').length) $(this).after('<input type="text"></input>'); 
}); 
相關問題