Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.05.2010, 11:16
Новичок на форуме
Отправить личное сообщение для rbooz Посмотреть профиль Найти все сообщения от rbooz
 
Регистрация: 21.05.2010
Сообщений: 3

Большое спасибо всем за советы. Сработали оба способа. Но раз уж лайв использовать не советуете, воспользовался callback'ом.
Ответить с цитированием
  #12 (permalink)  
Старый 24.05.2010, 15:39
Новичок на форуме
Отправить личное сообщение для Roboteck Посмотреть профиль Найти все сообщения от Roboteck
 
Регистрация: 24.05.2010
Сообщений: 7

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

jQuery.fn.obrabotka_diva=function ()
{
	// Тут вешаются обработчики событий и многое другое...
		$(this).find("img").click(function ()
		{
			...
		});
		$(this).click(...);
	// Тут вешаются обработчики событий и многое другое... End
	
	return this;
};
Ответить с цитированием
  #13 (permalink)  
Старый 25.05.2010, 00:46
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

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

Roboteck,
micscr,
может поделитесь своими соображениями, чем вы руководствуетесь, когда применяете инструменты предназначенные для массовой обработки, к такого рода задаче по одиночной обработке?!
я вижу в ваших действиях в пределах темы, лишь стрельбу из пушки по воробьям
Ответить с цитированием
  #14 (permalink)  
Старый 25.05.2010, 08:42
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

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

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

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

- но те кто не знает jQuery могут позапутываться в куче функций. Хотя это их проблемы, все равно нужно учитывать.
Ответить с цитированием
  #15 (permalink)  
Старый 25.05.2010, 12:03
Новичок на форуме
Отправить личное сообщение для Roboteck Посмотреть профиль Найти все сообщения от Roboteck
 
Регистрация: 24.05.2010
Сообщений: 7

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

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

Загрузить можно самое разное содержимое, в содержимом могут быть ссылки на другие страницы (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;
	};
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery - Как получить полный путь? kirill.adw jQuery 5 20.11.2009 17:40
Как правильно использовать jQuery lightBox vishnu Элементы интерфейса 2 11.11.2009 07:00
Как отключить submit формы в jQuery? khusamov Общие вопросы Javascript 2 08.07.2009 00:54
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30