Показать сообщение отдельно
  #1 (permalink)  
Старый 29.03.2012, 20:43
Аватар для papochka
Интересующийся
Отправить личное сообщение для papochka Посмотреть профиль Найти все сообщения от papochka
 
Регистрация: 29.03.2012
Сообщений: 10

Ajax загрузка контента (не вопрос)
Вдруг кому пригодится. Или кто предложит лучше...

Что предлагаю? Загрузку фрагмента страницы с помощью $.ajax - вместо load()
Подробнее Кликом на ссылку подгрузить в заранее оговоренный div контент любого div'a с другой страницы того же сайта.
Особенности CSS не предлагаю - на вкус и цвет. Ссылка, кликать на которую, должна быть в формате
<a class="loot" href="page.php" rel="victim"></a>
где page.php - адрес страницы-"донора" (откуда будем выдергивать div), а victim - ID нужного div'a (который конечно может быть любым - главное, чтобы вообще он был и чтобы он совпадал в атрибуте rel ссылки и в атрибуте id элемента-донора).
В примере фрагмент подгружается в div id="thief".

Кому нужен этот велосипед, вместо простого load()? Тем, кто столкнулся с проблемой конфликтов $.ajax и load - подробнее здесь

Код скрипта:

$('.loot').live("click", function(){
 var loaderImg = "<img src='loader.gif' alt='загрузка...' />"; // картинка до загрузки
 var url = $(this).attr("href"); // получаем значение атрибута href ссылки 
 var rel = 'div#'+$(this).attr("rel"); // получаем значение атрибута rel ссылки
 $("div#thief").html(loaderImg).html(function(){
 			var a=loaderImg;
			$.ajax({ // запрашиваем данные со страницы-донора
				url:url,
				dataType:"html",
				async:false,
				success:function(b){a=$(b).find(rel)},  // извлекаем html из нужного элемента (в примере <div id="victim">)
				error:function(){alert("Ajax!Ошибка.")}
				});
				return a
 });
 $("div#thief").fadeIn('fast'); // отображаем блок, если он был скрыт
 return false;
});


Для желающих поворчать: не надо ворчать, лучше предлагайте лучше.
Или оптимизируйте, - ибо я последнее время мало сплю (см.никнейм)

Тем, кому нужен метод load - см. здесь (внизу первого поста).

Спасибо за внимание.
Ответить с цитированием