0

私のデモは非常に明確です。要素のクローンを作成するときは、divのクローンを作成して削除しますが、:last要素(li)は削除しないでください。私が欠けているものは何ですか?

これと関係があります!:

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

デモ:http: //jsfiddle.net/XeELs/86/

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

    $("#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;
    }

});

4

2 に答える 2

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;
    }   
});
于 2012-04-13T16:33:17.927 に答える
1

size()メソッドを使用して、アドレスブロックがいくつあるかを調べます。これにより、残りが1つになるまでアドレスブロックを削除できます。

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

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

}

http://jsfiddle.net/2mby5/

于 2012-04-13T16:29:24.660 に答える