嗨,我創建了一個看起來像形式的配料應用:複製沒有克隆的跨度?
正如你所看到的,有含2個文本框一個span
和選擇。您可以通過點擊旁邊的X來刪除任何跨度。
我的問題是,我使用jQuery克隆,所以如果你刪除所有的跨度,然後點擊「添加成分」,沒有div克隆,所以它不會添加成分。
我該如何解決這個問題?感謝您的幫助!
嗨,我創建了一個看起來像形式的配料應用:複製沒有克隆的跨度?
正如你所看到的,有含2個文本框一個span
和選擇。您可以通過點擊旁邊的X來刪除任何跨度。
我的問題是,我使用jQuery克隆,所以如果你刪除所有的跨度,然後點擊「添加成分」,沒有div克隆,所以它不會添加成分。
我該如何解決這個問題?感謝您的幫助!
我的方法是,你不要讓用戶刪除最後的div
。
所以,你總是從頁面上的一個成分div
開始。讓他們通過克隆添加新的。
當用戶移除配料時,請刪除div
並檢查剩餘的配料數量。如果只有一個,請刪除或隱藏刪除按鈕,以便它們不能刪除最後一個成分。
但是當用戶不需要任何配料時會發生什麼? – Muhambi
@Muhambi - 使用'.detach()'去除div。 –
簡單修復,克隆準備好的文檔中的元素,但不要將其放入頁面中並使用它進行克隆。
(function ($) {
$(document).ready(function() {
var myClone = $('#ingredientsCOUNT > span:first').clone();
$('#btnAddIngredients').click(function() {
var num = $('#ingredientsCOUNT span').length;
var newNum = new Number(num + 1);
myClone
.clone()
.attr('name', 'ingredient' + newNum)
.appendTo('#ingredientsCOUNT')
.fadeIn();
});
$('.formelementcontainer').on('click', '.deleteThis', function() {
var span = $(this).closest('span');
console.log(span);
span.fadeOut('slow', function() {
span.remove();
});
});
});
})(jQuery);
要麼防止最後成分的缺失,或保存在變量或跨度的localStorage – user1167442
或創建一個新的跨越'$(」 「).append($(」 「))。追加($(」 「))'並使用.attr()在創建時設置屬性。 – miah