![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| nepster |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
итак, имею вот такую структуру. в head подключаем штук 5 скриптов (jquery, плагины, собственные функции).
далее есть страница, на которой материал и поиск (поиск на аякс).
Окей, поиск работает следующим образом:
по нажатию ентер, вы отправляем данные и нам возвращается результат в формате text/html, который якобы обратно подставляется в блок с айди TableContent Все работает все хорошо. НО Я заметил такой прикол. Я использую плагин для вида форм (красивые инпутики, все дела), дальше поиск вывидете и вызываю собственную функцию на 1 из кнопок в материалах, через onclick. После того, как подгрузились данные и вставились, не работает поиск (ентер игнор), не работает плагин форм, работает только моя функция по onclick. Подскажите пожалуйста, почему так вышло? Добавлено @ 02:41
хотя если дописать вот такой код, заработает поиск, вероятнее всего если подгрузить еще раз плагин, то все заработает. Вопрос почему так ? По сути никакие элементы не меняются ! Это сообщение отредактировал(а) Aliance - 13.3.2013, 09:58 |
||||||
|
|||||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: нет Всего: 60 |
Все верно на все красивые инпутики которые были сделаны через JS нужно вызвать повторно для них код.
Так как новые элементы не получили события или указания что сними сделать. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
а можно ли как-то обновить события не вызываю при этом долнотильно скрипт по новой ?
В вк к примеру, по дэбагеру не видно, что они что то вызывают дополнительно к примеру, когда прокручиваем скрон и подгружается контент |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 7 Всего: 137 |
Можно если написать грамотно сам скрипт. Видимо у вас скрипт состоит из 2 вещей - самого кода и его инициализации. Сам код достаточно загрузить однажды. А инициализация уже вызывать отдельно столько раз, сколько нужно.
С другой стороны, если инициализация поставлена как объект observer - то и этого не понадобится. В общем думайте в сторону исправления логики работы скрипта. |
|||
|
||||
| nepster |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Если отойти от jquery обработчика событий
и сделать просто:
все работает (не считаем виды для инпутов ) подскажите пожалуйста, как можно инициализировать события по новой ? У меня кроме как вынести события в отдельный файл и подгрузить по новой идей нет.
Вы имеете ввиду, если бы все было написенно на ооп , то все было бы хорошо ? |
||||||
|
|||||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 7 Всего: 137 |
Какая стоит версия jQuery? Если старая - значит нужно обновляться. Если новая - значит нужно читать changelist и не пользоваться deprecated методами, оставленными лишь для обратной совместимости. Раньше были bind/live, видимо это то что вам нужно (.keyup() == .bind('keyup') ==> live('keyup')), а теперь нужно писать $(document).on('keyup', $element)
|
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
У меня еть получается файл, грубо говоря загрузчиК, где идет вызов всех плагинов и тп.
К примеру вот, у меня не работает сортировка в таблицу, но если я этот файл подгруду после выполения скрипта, все заработает, так же если я после выполнения допишу строчку jQuery("table").tablesorter();, все заработает. Вопрос можно, ли сделать так, что бы это происходило автоматом , без без повторных вызовов ? |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 7 Всего: 137 |
Нет, это логично что инициализируя плагин через jQuery("table").tablesorter(); он применяется только к тем элементам, которые есть на странице. При подгрузке новых нужно его повторно инициализировать. НО, только его, а не все плагины.
|
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
да, но к примеру в этом файле инициализация всех плагинов.
К примеру у меня в таблице, данные которой я обновляю есть следующие плагины: - подсказки - сортировка в таблице - инпутики - модальные окна но к примеру если я засуну в функцию повторный вызов скрипта с подгрузкой инициализации плагинов, что бы потом не путаться. Тоесть в 1 функции не вызывать 5 таких плагинов, в друго1 еще 5 других и тп. Файл весит кб 40(без сжатия), думаю не страшно если его вот так тянуть каждый раз ? |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 7 Всего: 137 |
Если честно, то я уже запутался и немного потерял нить задачи, но могу сказать в целом что это может и не критично в этом случае, но в целом неправильно. Нужно делать по-другому)
|
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Суть задачи максимально эффективно решить вопрос с переинициализацией плагинов после подгрузки нового контента средствами аякс.
А есть еще варианты, кроме в функции запускать плагины повторно ? |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 7 Всего: 137 |
Если это готовый плагин - то мне видится, что самый оптимальный вариант переинициализировать их (но только их, а не все заного).
Если это самописный плагин - нужно смотреть как он написан. |
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
нет вроде это jQuery UI.
Я понял суть, большое спасибо! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |