Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2013, 17:23
Кандидат Javascript-наук
Отправить личное сообщение для cha0s Посмотреть профиль Найти все сообщения от cha0s
 
Регистрация: 21.10.2013
Сообщений: 125

Объясните не могу понять почему так происходит
function getPhotos(set_id, offset) {
		if (!offset) {
		$.getJSON("http://graph.facebook.com/"+set_id+"/photos?limit=25&offset=0", function(graphData){
			
			var length = graphData.data.length;
			var thumbHTML = '';

			for (i=0; i<length; i++) {
				var photoURL = graphData.data[i].source;
				var thumbURL = graphData.data[i].picture;
				
				thumbHTML += '<a rel="fg_thumb" class="fg_thumb '+thumbclass+'" href="'+ photoURL +'" ><div class="fg_thumb_content">';
				thumbHTML += '<img src=' + thumbURL + ' /></div> </a>';
				
				$("#fg_album").empty().append(thumbHTML).fadeIn(300);
				
				
				if(typeof $.fancybox == 'function') {
					$("a.fg_thumb").fancybox(); 
				} else if(typeof $.colorbox == 'function') {
					$("a.fg_thumb").colorbox(); 
				}
				
				//show top bar
				$("#fg_topbar").fadeIn(300);
			}

		});
	} else {
			$.getJSON("http://graph.facebook.com/"+set_id+"/photos?limit=25&offset="+offset+"", function(graphData){
			
			var length = graphData.data.length;
			var thumbHTML = '';

			for (i=0; i<length; i++) {
				var photoURL = graphData.data[i].source;
				var thumbURL = graphData.data[i].picture;
				
				thumbHTML += '<a rel="fg_thumb" class="fg_thumb '+thumbclass+'" href="'+ photoURL +'" ><div class="fg_thumb_content">';
				thumbHTML += '<img src=' + thumbURL + ' /></div> </a>';
				
				$("#fg_album").empty().append(thumbHTML).fadeIn(300);
				
				if(typeof $.fancybox == 'function') {
					$("a.fg_thumb").fancybox(); 
				} else if(typeof $.colorbox == 'function') {
					$("a.fg_thumb").colorbox(); 
				}
				
				//show top bar
				$("#fg_topbar").fadeIn(300);
			}

		});
		}

	}

Имеется функция которая берет из facebook альбома фотки, первый шаг все отлично загружается 25 фоток из альбома, при допустим нажатие на кнопку
<a onclick="getPhotos(xxxxxxxxxxxxxxxx, 25)">MORE</a>


Надо добавить уже к существующем 25-ти фоткам, еще 25 фоток, как-бы все работает, ТОЛЬКО ОН НЕ ДОБАВЛЯЕТ их к существующему уже div, а берет его затирает, убирает 25 старых фоток, и ставит 25 новых фоток поверх их! ПОЧЕМУ ведь написано чтоб делать .APPEND :/

П.С в сам код можно особо не вникать он работает и все загружает, проблема только то что он переписывай div по новой каждый раз! почему?
Ответить с цитированием
  #2 (permalink)  
Старый 21.10.2013, 17:29
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от cha0s
а берет его затирает, убирает 25 старых фоток, и ставит 25 новых фоток поверх их! ПОЧЕМУ ведь написано чтоб делать .APPEND
а перед.append() что стоит?
Ответить с цитированием
  #3 (permalink)  
Старый 21.10.2013, 21:56
Кандидат Javascript-наук
Отправить личное сообщение для cha0s Посмотреть профиль Найти все сообщения от cha0s
 
Регистрация: 21.10.2013
Сообщений: 125

если empty убирает то получается какая-то вообще галиматья, фотки начинают выбранные дублироваться и всякое такое.. тем более там ведь цикл он цикл гонит 25 раз, и еслиб .empty.append было как удаление, то он имхо только из 25 фоток, оставлял 1 самую последнюю когда цикл закончиться, не?))
Ответить с цитированием
  #4 (permalink)  
Старый 23.10.2013, 12:52
Новичок на форуме
Отправить личное сообщение для LaNat Посмотреть профиль Найти все сообщения от LaNat
 
Регистрация: 23.10.2013
Сообщений: 1

Цитата:
thumbHTML += '<a rel="fg_thumb" class="fg_thumb '+thumbclass+'" href="'+ photoURL +'" ><div class="fg_thumb_content">';
thumbHTML += '<img src=' + thumbURL + ' /></div> </a>';
Вы в цикле собираете строку, состоящую из ссылок я так понимаю на ваши 25 файлов, а потом 25 раз очищаете и вставляете в div fg_album.

Цитата:
$("#fg_album").empty().append(thumbHTML).fadeIn(30 0);
Эту строку кода можно вынести из цикла и вы получите тот же результат.

Может стоит попробовать так
Цитата:
for (i=0; i<length; i++)
{
var photoURL = graphData.data[i].source;
var thumbURL = graphData.data[i].picture;

thumbHTML += '<a rel="fg_thumb" class="fg_thumb '+thumbclass+'" href="'+ photoURL +'" ><div class="fg_thumb_content">';
thumbHTML += '<img src=' + thumbURL + ' /></div> </a>';
}

$("#fg_album").append(thumbHTML).fadeIn(300);
if(typeof $.fancybox == 'function')
{
$("a.fg_thumb").fancybox();
} else if(typeof $.colorbox == 'function')
{
$("a.fg_thumb").colorbox();
}
//show top bar
$("#fg_topbar").fadeIn(300);

Последний раз редактировалось LaNat, 23.10.2013 в 12:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
<li class="active"> Не могу понять :( renelon Javascript под браузер 10 28.09.2013 16:58
Не могу понять какая кодировка Andrey Sipin Events/DOM/Window 1 05.10.2009 18:25
Объясните мне что я делаю не так. Yanub Общие вопросы Javascript 10 24.08.2009 13:04
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22
Не могу понять как работает jQuery kostiaGt jQuery 2 20.07.2008 08:42