Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2013, 17:04
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Автоматическая инициализация плагинов.
На странице есть множество динамически подгружаемых областей(то есть html блоки подгружаются с помощью ajax-а и вставляются в DOM). В этих блоках находятся куча разных элементов-плагинов, которые нужно инициализировать, например, находятся стандартные селекты, которые подменяются плагином, стилизующим их. Так вот, есетственно для одного селекта я могу вызывать иницилазиацию после вставки html-я в DOM, но что делать, если плагинов может быть куча и совершенно разных? То есть можно ли как-то сделать:
1) чтобы само отслеживалось, что в DOM были внесены изменения.
2) само определяло какие плагины есть и эти плагины инициализировались? Уверен, что такой механизм должен быть, кто-нибудь да уже придумал.
Заранее благодарю.
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2013, 17:22
Новичок на форуме
Отправить личное сообщение для mishgun131 Посмотреть профиль Найти все сообщения от mishgun131
 
Регистрация: 15.05.2013
Сообщений: 2

Добрый день,

Есть событие DOMNodeInserted. Это чтобы отслеживать изменения в DOM и что либо делать. Но мне кажется тут проще будет реализовать callback для каждого плагина, по завершению ajax. Это если я правильно Вас понял.

Можете подробнее объяснить, что значит "например, находятся стандартные селекты(<select>?), которые подменяются плагином, стилизующим их"?
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2013, 17:43
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Например, загрузилась страница. Далее идет ajax запрос, которым подставляется верстка на страницу, скажем, в шапку сайта. В этой верстке, пришедшее в ajax ответе, находятся стандартные теги select, которые нужно заменить дивами, используя инициализацию плагина. А также есть, например, галлерея слайдов, которая тоже должна быть проинициализирована, чтобы она заработала.
Ответить с цитированием
  #4 (permalink)  
Старый 08.10.2013, 15:26
Новичок на форуме
Отправить личное сообщение для nick_ Посмотреть профиль Найти все сообщения от nick_
 
Регистрация: 08.10.2013
Сообщений: 1

Приведу свою реализацию, возможно не лучшее решение, но работает вполне нормально.

Я тоже в свое время озадачился таким вопросом, т.к. активно использую Ajax-ссылки, и разные UI плагины. В общей архитектуре используется технология MVC, и есть представления (Veiw-файлы) в которых собирается HTML. Так вот, в этот html я встраиваю специальные теги в которых указываю ту функцию которую нужно запустить, при желании ей можно передать пременные (селекторы, id и т.д.). После удачной подгрузки по Ajax, запускается функция, которая ищет такие теги и запускает функции инициализации в соответственно.

Пример:

скрытый тег на странице, который указывает, что именно запустить
<input class="initJS" type="hidden" value="initEditor();" />


После подгрузки страницы $.ajax запускается функиция, которая ищет на странице, что ей нужно запустить
$('input.initJS').each(function (index, element) {
        var fun = $(element).val();
        eval(fun);
    });
}
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка изображений аджаксом без плагинов antserg jQuery 5 24.06.2013 16:32
Шаблон для создание плагинов W1nD jQuery 3 12.07.2012 14:20
несовместимость плагинов fancybox и jPlayer Andrey-Butenko jQuery 1 21.05.2012 18:49
Как получить список всех установленных плагинов VitAngel Internet Explorer 0 15.07.2009 09:13
Определение количества плагинов Александр 2009 Общие вопросы Javascript 19 26.03.2009 00:41