所以我左边有一个大按钮,右边有一个表格。单击该按钮时,它最多可创建5个其他表单。它还会更新id和风味配置文件#text。
它仍然是一个小马车,正在寻找一些帮助整理它,因为我不是最好的JS。
问题1:如果您创建另外5个克隆,然后将其删除。当你再次创建它们时,它将它们标记为#7#8#9 - 因为只允许6个表格。我需要这个数字只显示1-6而不是高于或低于。 对于id也我也想要同样的事情。
问题2:我的另一个问题是我想从 Flavor Profile#1中删除"删除按钮" (第一种形式)。因为如果删除所有表单,就没有什么可以克隆的。
感谢您的帮助!
var cloneIndex = 1;
var clones_limit = 5;
var cloned_nbr = $(".clonedInput").length-1; //Exclude Default (first) div
function clone()
{
if(cloned_nbr<clones_limit)
{
cloneIndex++;
cloned_nbr++;
var new_clone = $(".clonedInput").first().clone();
new_clone.attr("id", "clonedInput" + cloneIndex);
new_clone.find(".label-nbr").text(cloneIndex);
new_clone.find(".category").attr("id","category"+cloneIndex);
new_clone.show(".remove").attr("id","remove"+cloneIndex);
new_clone.on('click', 'button.clone', clone);
new_clone.on('click', 'button.remove', remove);
$("#formy").append(new_clone);
}
}
function remove(){
if(cloneIndex>1){
$(this).parents(".clonedInput").remove();
cloned_nbr--;
}
}
$(".clone").on("click", clone);
$(".remove").on("click", remove);
答案 0 :(得分:1)
添加一个功能,用于检查存在的可移动div
的数量。如果超过1,则显示删除按钮,否则不显示:
function handleRemoveButton(){
var numItems = $('.clonedInput').length;
if(numItems<=1){
$(".remove").hide();
}
else{
$(".remove").show();
}
}
并称之为三次:一次在$(document).ready();
上,一次在clone(){}
和remove()
的最后一次。
答案 1 :(得分:1)
我把它改了一下。它应该使用适当的索引并删除按钮!
function getFreeIds() {
var used = $('.clonedInput').find('.label-nbr').map(function(i, v) {
return parseInt(v.innerText)
}).get();
return allowed.filter(function (i) {return used.indexOf(i) === -1});
}
它可以满足您的需求。
答案 2 :(得分:1)
编写重新排列函数来更新内容,并在克隆项目或删除项目时调用它
function rearrange(){
var count = 1;
var totalCount = $(".clonedInput").length;
$(".clonedInput").each(function(){
$(this).attr("id", "clonedInput"+count).find(".label-nbr").text(count).end().
find(".category").attr("id","category"+count).end().find(".remove").toggle(totalCount!=1).attr("id","remove"+count).on("click", remove);
count++;
});
}
检查jsfiddle:http://jsfiddle.net/tfFLt/1922/