2015-12-15 3 views
0

Знаете ли вы, как удалить div, содержащий ссылку .close При нажатии ссылки .close? Я пытался с $(this).closest('div').remove(), но ее не работает ...удалить div при нажатии .close

$(".close").hide(); 
$(".delete-link").bind("click", function() { 
    $(".close").addClass("active"); 
    $(".close").show(); 
    $(".close").bind("click", function() { 
    $(this).css("background","red"); 
    $("#content-message").show(); 
    $(".delete-div").bind("click", function() { 
     var teste = $(this).closest('div').remove().html(); 
     alert(teste); 
    }); 
    }); 
}); 

https://jsfiddle.net/000dqyLd/

+0

Вы бы не просто использовать 'parent' вместо' closest'? –

ответ

1

Попробуйте это:

$(".close").hide(); 
$(".delete-link").bind("click", function() { 
    $(".close").addClass("active"); 
    $(".close").show(); 
    $(".close").bind("click", function() { 
    var $this = this; // 'x'-> element which was clicked 
    $(this).css("background","red"); 
    $("#content-message").show(); 
    $(".delete-div").bind("click", function() { 
     $($this).closest('.content-link').remove(); // find the closest element to the element which triggered the click event with class 'content-link' and remove it. 
     $("#content-message").hide(); // optional 
     $(".close").hide(); // optional 
    }); 
    }); 
}); 

https://jsfiddle.net/szcq649v/3/

+0

Я не забыл это сделать, спасибо! – user5674491

+0

Несомненно. Рад помочь :). Вот обновленная версия: https://jsfiddle.net/szcq649v/4/ – DinoMyte

1

В то время как вы хотите, чтобы сделать действие из элемента не связанный с элементом , который вы хотите сделать с вами должны что-то передать как индекс() или что-то с атрибутом данных .. поэтому проверить этот код

$(".close").hide(); 
$(".delete-link").on("click", function() { 
    $(".close").addClass("active").show(); 
    }); 
    $(".close").on("click", function() { 
    var getIndex = $(this).closest('.content-link').index(); 
    $(this).css("background","red"); 
    $("#content-message").attr('data-div' , getIndex).show(); 
    }); 
    $(".delete-div").on("click", function() { 
     var getIndex = parseInt($('#content-message').attr('data-div') , 10); 
     alert(getIndex); 
     $('.content-link').eq(getIndex - 1).remove(); 
     $('#content-message').hide(); 
    }); 
    $(".cancel-div").on("click", function() { 
     $('#content-message').hide(); 
    }); 

Working Demo

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