Вы должны изменить свои .click(fn)
обработчики на .live("click", fn)
.Ваши обработчики .click()
работают только с теми элементами, которые находятся на странице в document.ready time.Элементы, которые вы добавили динамически, тогда отсутствовали, поэтому они не имеют обработчиков щелчков.
.live()
, с другой стороны, просматривает щелчки на верхнем уровне, а затем проверяет их, чтобы убедиться, что они нажимаютсясоответствующий объект и будет работать с объектами, которые динамически добавляются на страницу после выполнения кода инициализации..live()
работает только с некоторыми событиями (событиями, которые всплывают), но клик является одним из них, с которым он работает.
$(document).ready(function(){
$('.img-post input').after('<button type="button" >Delete</button>');
$(".img-post button").live("click", function() {
$(this).prev().prev().remove();
$(this).prev().remove();
$(this).remove();
});
$(".add-img button").live("click", function() {
$('<img src="image3.jpg" /><input type="hidden" name="allimages[]" value="image3.jpg" /><button type="button" >Delete</button><br />').appendTo('.img-post');
});
});