2012-04-13 3 views
0

Моя демонстрация, действительно ясная, когда я клонирую свой элемент Я клонирую и удаляю divs, однако последний элемент (li) должен быть удален. что мне не хватает?Функция jquery clone вложенная опция удаления

что-то делать с этим !:

$(document).on("click", 'li.delete',function() { 
      $(this).closest(".outerDiv").remove(); 
    if ($(this).is(".outerDiv:last")){ 
      return false; 
    } 

DEMO: http://jsfiddle.net/XeELs/86/

Jquery вар cloneCount = 0; . $ ("# надстройку адрес") нажмите (функция() {

$("#to-add-address").clone() 
     .attr("id", "to-add-address_Clone" + cloneCount) 
     .insertAfter("#to-add-address"); 
    $("#clone", "#to-add-address_Clone" + cloneCount) 
     .attr("id", "clone_Clone" + cloneCount); 
    cloneCount++; 
}); 

$(document).on("click", '.options li a',function() { 
      $(this).closest(".options").find('li a').removeClass('selected'); 
      $(this).addClass('selected'); 

     }); 
$(document).on("click", 'li.delete',function() { 
      $(this).closest(".outerDiv").remove(); 
    if ($(this).is(".outerDiv:last")){ 
      return false; 
    } 

});

ответ

1

попробуйте этот код

var cloneCount = 0; 
$("#add-address").click(function() { 

    $("#to-add-address").clone() 
     .attr("id", "to-add-address_Clone" + cloneCount) 
     .insertAfter("#to-add-address").addClass('cloned'); //add a new class cloned to the cloned outerDivs 
    $("#clone", "#to-add-address_Clone" + cloneCount) 
     .attr("id", "clone_Clone" + cloneCount); 
    cloneCount++; 
}); 

$(document).on("click", '.options li a',function() { 
      $(this).closest(".options").find('li a').removeClass('selected'); 
      $(this).addClass('selected'); 

     }); 
$(document).on("click", 'li.delete',function() { 
      $(this).closest(".outerDiv").filter('.cloned').remove(); // and delete only the cloned ones 
    if ($(this).is(".outerDiv:last")){ 
      return false; 
    } 
}); 
1

Используйте метод size(), чтобы узнать, сколько адресов блоков есть, это позволит вам удалить их до тех пор, пока только один левый:

$(document).on("click", 'li.delete',function() { 

    if ($('.outerDiv').size() > 1){ 
      $(this).closest(".outerDiv").remove(); 
    } 

} 

http://jsfiddle.net/2mby5/

Смежные вопросы