Похоже, вы связываете событие click с DOM-элементами .acontainer img, которых в данный момент не существует, поскольку вы извлекаете их, когда нажимаете .image-field.
Как правило, вы должны использовать jQuery.on и привязывать свои события к корню документа. Это называется делегированием. Когда вы нажимаете на ссылку, событие всплывает и попадает на узел документа, и оно обрабатывает событие. Таким образом, когда вы добавляете элементы DOM через ajax или непосредственно в DOM, они все равно получат тот обработчик событий, который вы намеревались.
$(function() {
$(document).on('click', '.acontainer img', function(event) {
$('.image-field').val($(this).attr('src'));
})
});
Однако здесь есть большая проблема. Похоже, у вас есть несколько элементов .image-field на странице. В обработчике .image-field вам может потребоваться вернуть HTML, а не js, чтобы вы могли привязать событие к корневому элементу вновь добавленного HTML. Этот блок идентифицирует конкретное поле ввода, значение которого оно может установить после нажатия на изображение.
$(function() {
$(document).on('click', '.image-field',
function(event) {
var field = $(this);
$.ajax('/edit', {
success: function(data, textStatus, jqXHR) {
var blah = $(Dialog.new(data));
// Create a modal and return its root DOM element
blah.on('click', 'img',
function(event) {
field.val($(this).attr('src'));
});
}
})
});
});
Последнее замечание, вы можете рассмотреть возможность использования контроллера RESTful для ваших активов. Возможно, вы не захотите получать один ресурс (актив) из контроллера с именем EventsController, особенно с помощью действия редактирования. Вы хотите, чтобы GET AssetsController :: index возвращал список активов.