我想要一個文本輸入的形式。所有輸入將按照有序列表OL/LI結構。 輸入框旁邊會出現一個+符號,當你點擊它時,它應該創建一個子OL並用另一個輸入創建一個二級列表。如果再次單擊它,它會添加另一個輸入。新的輸入也有+符號,你可以做同樣的事情。我只是在技術上想讓它變得更深,但我認爲我可以在以後看到這一點,但我真正想做的是如何做到這一點。jQuery的克隆和appendTo複製錯誤的內容
我有一個開始階段,但它重複太多的李,我不知道發生了什麼事。 這就是我所擁有的。
$('.add_sub_page').live('click',function(e){
$("<ol>").append($(this).parent().clone()).insertAfter(this);
e.preventDefault();
});
我提出這一個IRC聊天室,我得到了這個解決方案,但它具有相同的問題,因爲我的第一個解決方案,所以我不知道這是否是更容易還是不工作,所以我也會提供它。
$('.add_sub_page').live('click',function(e){
var ol = $("ol",this), new_ol = ol.length ? false : true;
ol = new_ol ? $("<ol>") : ol;
ol.append($(this).parent().clone());
if (new_ol) {
ol.insertAfter(this);
}
e.preventDefault();
});
而只是讓你可以看到HTML我有...
<form id="sitemap" action="" method="post">
<ol>
<li class="page-title"><label>Page Name: </label><input type="text" name="pages[]" value=""><a class="add_sub_page">+</a></li>
<li class="page-title"><label>Page Name: </label><input type="text" name="pages[]" value=""><a class="add_sub_page">+</a></li>
<li class="page-title"><label>Page Name: </label><input type="text" name="pages[]" value=""><a class="add_sub_page">+</a></li>
<li class="page-title"><label>Page Name: </label><input type="text" name="pages[]" value=""><a class="add_sub_page">+</a></li>
<li class="page-title"><label>Page Name: </label><input type="text" name="pages[]" value=""><a class="add_sub_page">+</a></li>
</ol>
<p><input type="submit" name="submit_step1" value="Next Step"></p>
</form>
您可以在http://jsbin.com/everu3預覽問題的工作 - 點擊同一個加號(+)兩次來查看問題。
感謝您提供任何幫助!
嗨尼克! 這真的非常接近我要去的地方,唯一的問題是它在每個孩子周圍添加一個OL,而不是所有的孩子。所以,而不是李列表式1,2,3,4等,它只是重複數字1. 雖然我欣賞最初的推動!這絕對是朝着正確方向邁出的一步。 – LostInQuery 2010-07-22 23:44:08
@LostInQuery - Chrome默認使用我的樣式禁用編號,讓我看看:) – 2010-07-22 23:50:37
@LostInQuery - 這是你在做什麼? HTTP://的jsfiddle。net/nick_craver/GhDp7/1/ – 2010-07-22 23:56:18