У меня есть список элементов, которые динамически добавляются после вызова Ajax. Я использую плагин, который создает событие щелчка лайтбокса для динамически добавленных якорей. Он отлично работает, но иногда он говорит, что заголовок не определен. Я понимаю, что это связано с тем, что плагин запускается до того, как атрибут title полностью добавлен в DOM. Я знаю несколько способов сделать это, но каков наилучший способ проверить, что все эти элементы полностью добавлены?JQuery Javascript лучший способ проверить элементы, добавленные
Ajax вызов уже сделан и данные проанализированы с помощью этой функции (название Colorbox является тот, который имеет значение «неопределенные» только для некоторых):
function pageImages(images,_q){
for(var i = 0; i < images.count; i++){
$('#pageImages').append('<div class="pageImageItem"><a href="' + images.data[i]._clickurl + '" title= "' + images.data[i]._title + '">\
<img src="' + images.data[i]._thumbnailUrl + '" alt= "' + images.data[i]._title + '"/>\
</a><div class="hoverInfo"><a href="' + images.data[i]._clickurl + '"><h2>' + images.data[i]._title + '</h2><p>' + limitCharacters(images.data[i]._clickurl,40) + '</p></a></div></div>');
}
$(".pageImageItem a").colorbox({maxWidth:'95%', maxHeight:'95%', title: function(){
var url = $(this).attr('href'),
title = $(this).attr('title');
console.log(title);
return '<h2>' + title + '</h2><a href="' + url + '" target="_blank">' + limitCharacters(url,40) + '</a>';
}});
}
А вот картина того, что происходит (анкер выделен элемент, который явно имеет атрибут title, но показывает неопределенный в лайтбокс):
* «Я понимаю, что это связано с тем, что плагин инициируется до того, как атрибут title полностью добавлен в DOM». * Нет, это не так. Элемент полностью добавляется к DOM перед возвратом вашего вызова '.append'. Проблема кроется в другом месте. С кодом, который вы указали, '$ (this) .attr ('title');' никогда не вернет 'undefined'. Он может возвращать '' '', хотя, если какой-либо из свойств 'images.data [i] ._ title'' '' ''. И он может возвращать '' undefined ''(обратите внимание на кавычки), если какой-либо из свойств' images.data [i] ._ title' 'undefined' (или отсутствует в' images.data [i] 'целиком). –
Я не уверен, что это было бы тогда. Я приложу фотографию в свой вопрос о том, что происходит на лицевой стороне. Если у вас есть идеи, дайте мне знать. Кроме того, когда я нажимаю на якорь AGAIN, часто заголовок отображается правильно. – CaitlinHavener
Разум, отправляющий вызов AJAX? – tymeJV