Javascript.RU

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

.load() - как в загруженном содержимом использовать jquery?
Такая проблема встала:
Делаю каталог, там товары выводятся, при клике на товар я вывожу див (наподобие лайтбокса допустим) поверх всего сайта, в этом диве вся информация о данном товаре, эта информация берется из бд (для этого .load). Т.е. у меня есть отдельный скрипт, в котором выводится вот это содержимое дива. И именно его я подгружаю в .load()

У каждого товара 3 картинки, и я хочу чтобы в этом подгруженном содержимом можно было покодить что-нибудь с помощью jquery (ну допустим 3 маленькие картинки, одна большая, и хочется прощелкаться по этим картинкам, чтобы они становились большими).
Ну это даже не так важно, что именно делать, просто вопрос принципиальный как раз в том, как взаимодействовать с подгруженным содержимым?
Я совсем только начал изучать jq, поэтому даже не пробовал, может с $ajax по-другому получится...
В любом случае, буду благодарен любым советам.
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2010, 17:34
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

А какая разница? Вы получили кусок хтмл, который добавился на страницу и jQuery имеет к нему такой же доступ, как и ко всему прочему. Работайте как и раньше - выбирайте нужные элементы по id или классу и т.д.
Цитата:
поэтому даже не пробовал
Вот надо сначала пробовать и пытаться решить задачу самостоятельно, иначе толку от всего вашего занятия - ноль.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2010, 21:55
Интересующийся
Отправить личное сообщение для Беляш Посмотреть профиль Найти все сообщения от Беляш
 
Регистрация: 14.03.2010
Сообщений: 16

Сообщение от SkyLight Посмотреть сообщение
А какая разница? Вы получили кусок хтмл, который добавился на страницу и jQuery имеет к нему такой же доступ, как и ко всему прочему. Работайте как и раньше - выбирайте нужные элементы по id или классу и т.д.
Если вот так:

function loadDiv(){
        ....
        $("#output").load(...); //допустим лоудом вставляем див с id="div"
        ....
	};

$("#div").click(function(){
        ....
        // что-то делает
        ...
})


При клике по по элементу с id="div", который был подгружен .load()-ом скрипт не сработает, просто не найдет элемент с таким id.

PS: в JS начинающий, но с этой проблемой уже сталкивался.
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2010, 06:56
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,389

Во первых функция load(url, data, callback) имеет третий аргумент - функцию где можно что то сделать после прихода ответа с сервера.

Во вторых, то что это
$("#div").click(function ...

не работает - делать:
$("#div").live('click', function ...
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2010, 07:31
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

micscr,
ну, и вот зачем ты плохому учишь человека?
Беляш,
помещай $("#div").click(function внутри ф-ции обработчике ajax-запроса
и вообще, лучше сперва выучи JavaScript Нормально, а потом уже учи jQuery
это плохая идея начинать изучение с него
Ответить с цитированием
  #6 (permalink)  
Старый 22.05.2010, 09:02
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,389

Сообщение от Gvozd Посмотреть сообщение
micscr,
ну, и вот зачем ты плохому учишь человека?
почему плохому?
Ответить с цитированием
  #7 (permalink)  
Старый 22.05.2010, 09:21
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

Сообщение от micscr
почему плохому?
потому что бездумное применение live может привести к проблемам с производительностью.
и человек привыкнув будет долго думать почему у него при движении мышкой все тормозит, к примеру
к тому же данного случая считаю Live неоправданным и ненужным.
Ответить с цитированием
  #8 (permalink)  
Старый 24.05.2010, 08:14
Интересующийся
Отправить личное сообщение для Беляш Посмотреть профиль Найти все сообщения от Беляш
 
Регистрация: 14.03.2010
Сообщений: 16

Сообщение от Gvozd Посмотреть сообщение
micscr,
Беляш,
помещай $("#div").click(function внутри ф-ции обработчике ajax-запроса
и вообще, лучше сперва выучи JavaScript Нормально, а потом уже учи jQuery
это плохая идея начинать изучение с него
Это я понял, с этим я уже разобрался, просто привел возможный пример почему у ТС возникла проблема, т.к. сам на неё наткнулся.

Начинать изучение языка с одного из его фреймворков - дурной тон, это понятно. Просто так получилось, что пока нет желания/возможности/времени головой окунаться в недры JS, а для верстки и AJAX'а пока вполне достаточно возможностей jQuery.
Ответить с цитированием
  #9 (permalink)  
Старый 24.05.2010, 09:39
Новичок на форуме
Отправить личное сообщение для rbooz Посмотреть профиль Найти все сообщения от rbooz
 
Регистрация: 21.05.2010
Сообщений: 3

Сообщение от Gvozd Посмотреть сообщение
micscr,
ну, и вот зачем ты плохому учишь человека?
Беляш,
помещай $("#div").click(function внутри ф-ции обработчике ajax-запроса
и вообще, лучше сперва выучи JavaScript Нормально, а потом уже учи jQuery
это плохая идея начинать изучение с него
Gvozd, в случае с лоадом "внутри ф-ции обработчике" это будет где? в callback'e?

Когда использование live будет оправданным?
Ответить с цитированием
  #10 (permalink)  
Старый 24.05.2010, 10:02
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

Сообщение от rbooz
Gvozd, в случае с лоадом "внутри ф-ции обработчике" это будет где? в callback'e?
да
Сообщение от rbooz
Когда использование live будет оправданным?
ну, лично я вижу такие ситуации:
- события не связанные с движением мыши, и печатанием на клавиаутуре.
хотя есть ситуации, когда в такой ситуации надо повесить live, но надо быть осторожным, так как такое использование может затормозить браузер. Особенно mousemove.
- у вас есть достаточно большое количество объектов, для которых надо повесить единый обработчик. например "виртуальная клавиатура", динамическое дерево, выпадающие многоуровневые меню, всякого рода карты с областями, элементы списков
чем больше количество однотипных объектов обрабатывается, тем выше скорость при повешении/снятия события
- особенно полезно, если эта куча объектов является динамической, и могут исчезать/добавлятся новые объекты. Например AJAX-дерево

и главное не забывать снять обработчик события, если на странице уже точно нету ни одного обрабатываемого объекта.

кажется все. больше поводов использовать live не вижу
ну и уж никак не стоит назначать его для одиночного элемента по id-шнику
Ответить с цитированием
Ответ



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

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


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