Большое спасибо всем за советы. Сработали оба способа. Но раз уж лайв использовать не советуете, воспользовался callback'ом.
|
$.get("скрипт.php", function (html)
{
$("#div").html(html).obrabotka_diva();
});
jQuery.fn.obrabotka_diva=function ()
{
// Тут вешаются обработчики событий и многое другое...
$(this).find("img").click(function ()
{
...
});
$(this).click(...);
// Тут вешаются обработчики событий и многое другое... End
return this;
};
|
Roboteck,
вы что шутите? расширять jQuery дополнительным методом ради одного вызова?!!! Roboteck, micscr, может поделитесь своими соображениями, чем вы руководствуетесь, когда применяете инструменты предназначенные для массовой обработки, к такого рода задаче по одиночной обработке?! я вижу в ваших действиях в пределах темы, лишь стрельбу из пушки по воробьям |
Я вообще то так не делал раньше, но смотрю красиво выглядит, компактно.
Цитата:
А понимаю ты за такой вариант:
$("#div").html(html);
obrabotka_diva($("#div"));
...
function obrabotka_diva($div){
$div.click(function(){});
...
}
- но те кто не знает jQuery могут позапутываться в куче функций. Хотя это их проблемы, все равно нужно учитывать. |
Спасибо за критику, Вы правы!
Просто я часто использую этот метод для обработки загруженного содержимого, в данном конкретном случае это наверное лишнее, но я отвечал на Цитата:
Загрузить можно самое разное содержимое, в содержимом могут быть ссылки на другие страницы (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, время: 16:00. |