Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   .load() - как в загруженном содержимом использовать jquery? (https://javascript.ru/forum/jquery/9512-load-kak-v-zagruzhennom-soderzhimom-ispolzovat-jquery.html)

rbooz 24.05.2010 11:16

Большое спасибо всем за советы. Сработали оба способа. Но раз уж лайв использовать не советуете, воспользовался callback'ом.

Roboteck 24.05.2010 15:39

$.get("скрипт.php", function (html)
{
	$("#div").html(html).obrabotka_diva();
});

jQuery.fn.obrabotka_diva=function ()
{
	// Тут вешаются обработчики событий и многое другое...
		$(this).find("img").click(function ()
		{
			...
		});
		$(this).click(...);
	// Тут вешаются обработчики событий и многое другое... End
	
	return this;
};

Gvozd 25.05.2010 00:46

Roboteck,
вы что шутите?
расширять jQuery дополнительным методом ради одного вызова?!!!

Roboteck,
micscr,
может поделитесь своими соображениями, чем вы руководствуетесь, когда применяете инструменты предназначенные для массовой обработки, к такого рода задаче по одиночной обработке?!
я вижу в ваших действиях в пределах темы, лишь стрельбу из пушки по воробьям

micscr 25.05.2010 08:42

Я вообще то так не делал раньше, но смотрю красиво выглядит, компактно.

Цитата:

расширять jQuery дополнительным методом ради одного вызова?!!!
А когда плагин используешь, он же тоже может в сумме работать только на одном элементе.

А понимаю ты за такой вариант:
$("#div").html(html);
obrabotka_diva($("#div"));
...
function obrabotka_diva($div){
  $div.click(function(){});
  ...
}

- но те кто не знает jQuery могут позапутываться в куче функций. Хотя это их проблемы, все равно нужно учитывать.

Roboteck 25.05.2010 12:03

Спасибо за критику, Вы правы!

Просто я часто использую этот метод для обработки загруженного содержимого, в данном конкретном случае это наверное лишнее, но я отвечал на
Цитата:

Ну это даже не так важно, что именно делать, просто вопрос принципиальный как раз в том, как взаимодействовать с подгруженным содержимым?
, а на практике очень часто встречаются случаи, когда надо вставить в див разнообразное содержимое

Загрузить можно самое разное содержимое, в содержимом могут быть ссылки на другие страницы (1, 2, 3, 4, ...) при постраничном выводе, фотографии, форма, которая должна отправить post-запрос и обновить содержимое этого дива, короче очень многое, которое будет заменять содержимое и каждый раз это содержимое можно будет обработать одной функцией, например, если в див будут одновременно вставляться формы, ссылки, фотографии:

$.get("скрипт.php", function (html)
	{
		$("#div").html(html).obrabotka_diva();
	});
	 
	jQuery.fn.obrabotka_diva=function () // Обработка дива с разнообразным содержимым
	{
		var div=this;
		
		$(this).find("a").click(function () // Обработка ссылок
		{
			var href=$(this).attr("href"); // Запоминаем url ссылки
			$(div).html("Загрузка..."); // Пишем в див "Загрузка..."
			
			$.get(href, function (new_html) // Отправляем запрос на url, получаем html-код
			{
				$(div).html(new_html).obrabotka_diva(); // Вставляем в див новый html-код и обрабатываем его спомощью obrabotka_diva
			});
			
			return false; // Останавливаем стандартный клик
		});
		
		$(this).find("form").submit(function () // Обработка форм
		{
			var action=$(this).attr("href"); // Запоминаем url формы
			$(div).html("Загрузка..."); // Пишем в див "Загрузка..."
			
			$.post(action, $(this).serialize(), function (new_html) // Отправляем запрос на url, получаем html-код
			{
				$(div).html(new_html).obrabotka_diva(); // Вставляем в див новый html-код и обрабатываем его спомощью obrabotka_diva
			});
			
			return false; // Останавливаем стандартную отправку данных
		});
		
		$(this).find(".foto").click(function () // Обработка фотки
		{
			...
		});
		 
		return this;
	};


Часовой пояс GMT +3, время: 10:24.