Это из-за асинхронного характера вызова ajax.
Код, который вы написали, пытается привязать событие click к кнопке, которая еще не была введена в DOM
Tryизменив код на:
$(document).ready(function() {
function loadImages() {
$.get('/management/image/get/site_id/1/area/News', function(data) {
$("#existing-images").html(data);
$(".deleteImage").click(function() {
id = $(this).attr('id'); id = id.split('_');
alert(id);
/*$.post(second_url+'id/'+id, '', function(theResponse) {
$("#image_"+id+"").remove();
});*/
});
});
}
$("#fileInput").uploadify({
'uploader' : '/library/jquery/uploadify/uploadify.swf',
'script' : '/gallery/image/area/site_id/<?php echo $site->id; ?>/area/<?php echo $this->area; ?>',
'cancelImg' : '/library/jquery/uploadify/cancel.png',
'folder' : '/images/Image/',
'multi' : true,
'onAllComplete' : function(e, queueId, file, response, data) {
$('#fileInput').uploadifyClearQueue();
loadImages();
},
});
loadImages();
});
Перемещение привязки в обратный вызов успеха вызова $.get
гарантирует, что новый html был введен до того, как привязка произойдет.
Альтернативно попробуйте поискатьиспользовать делегат вместо привязки к элементу, таким образом, вам не нужно постоянно перепривязывать