所以我使用jquery來克隆一個div,所以我可以保持輸入數組的動態大小。它的工作正常,但我不禁看着它,並認爲在克隆之前添加類,這樣我可以更有效地完成從克隆中刪除類後克隆與刪除後刪除舊的添加更多鏈接。或者也許總體上更有效的方式來做到這一點。更有效的jquery克隆
繼承人的HTML:
<div class="reg_heading_description" id="bio_brothers"></div>
<div class="bio_brother">
<div class="clearfix">
<label>First Name</label>
<div class="input">
<input type="text" name="bio_brother_first[]" style="float:left"/>
<label>Last Name</label>
<input type="text" name="bio_brother_last[]" style="margin-left:20px;"/>
</div>
</div>
<div class="clearfix">
<a href="#" class="more_bio_brother more_relatives" >Add Another</a>
</div>
</div>
</div>
和繼承人的jQuery和它的是,在不衝突模式
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery(".more_bio_brother").click(function() {
var here = jQuery(this).closest('div').parent();
var names = jQuery(here).find('input');
//validate
var check = 0;
jQuery.each(names, function() {
if (jQuery(this).val() == "") {
check = 1;
}
});
if (check == 1) {
alert('You must enter a first and last name for this biological brother before you can add another.');
return false;
}
//disable prior
jQuery.each(names, function() {
jQuery(this).attr('readonly', true);
});
//add new
jQuery(here).addClass('old');
jQuery('#bio_brothers').before(jQuery(here).clone(true));
jQuery.each(names, function() {
jQuery(this).attr('readonly', false);
jQuery(this).val("");
});
jQuery(here).removeClass('old');
jQuery('.old a').remove();
return false;
});
});
</script>
如果您將「$」傳遞到文檔就緒函數中,您可以在其中安全地使用$別名。 – 2011-12-15 19:03:23
所以,總結一下:你有一個包含兩個名字輸入和一個動作(添加新鏈接)的div。當採取行動時,你希望最終的結果是一個'克隆'(廣義上來說)這個div的輸入被禁用,鏈接被刪除,一個'新'(再次,外觀明智如果不是字面上節點明智的)div與空白輸入和一個閃亮的「添加新的」按鈕準備再次使用。你的問題是:「我是以最有效的方式做這件事,還是有更好的辦法?」 – 2011-12-15 19:15:45
。那是什麼在那裏,但它似乎可以更有效率。 – Rooster 2011-12-15 19:51:32