Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2012, 11:04
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Как применить свой плагин к вновь созданным элементам?
Например, мой плагин для jQ изменяет внешний вид всех textarea.
Как написать его так, чтобы он применялся к динамически созданным элементам?

К примеру у бутстрапа так работает: https://github.com/twitter/bootstrap...ap-dropdown.js
Но пока не доходит, как они это сделали, как работают их обработчики т.е.
$(document)
    .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
    .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .on('click.dropdown.data-api touchstart.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)
    .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)

Опять же в моем случае, плагин должен обрабатывать textarea сразу, без всяких нажатий на что-либо.

Последний раз редактировалось Shitbox2, 14.11.2012 в 12:13.
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2012, 12:25
Профессор
Отправить личное сообщение для Dmitriyff Посмотреть профиль Найти все сообщения от Dmitriyff
 
Регистрация: 22.07.2012
Сообщений: 164

Плагин не применится пока вы его не вызовете
то есть вам надо указать к каким элементам его применить

$('someElement1', ... , 'someElementN').pluginName();

тут про обработчики
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2012, 12:36
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

А когда его вызвать? К примеру, он должен скрывать все textarea и показывать вместо них элемент со своей логикой. По идее его нужно вызвать в момент появления нового поля ввода, но как узнать когда это поле появилось? Т.е. нужно отслеживать изменения dom и искать в них. Как это сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2012, 12:37
Профессор
Отправить личное сообщение для Dmitriyff Посмотреть профиль Найти все сообщения от Dmitriyff
 
Регистрация: 22.07.2012
Сообщений: 164

ну у вас же в коде есть момент вставки элемента textarea, добавьте после него вызов плагина, приминительно к новому элементу

элементы же у вас не спотолка берутся, а как-то добавляются
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2012, 12:45
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Так-то оно так, но нужен универсальный метод. Постоянно следить и подключать плагин — не вариант. Тем более, в коде могут быть не только мои куски
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2012, 14:45
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Да, и можно еще отследить, когда в textarea поменялся текст, причем поменялся не вручную, а скриптом? Ковырял onpropertychange но как-то ненаковырял
Ответить с цитированием
  #7 (permalink)  
Старый 14.11.2012, 17:20
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

Shitbox2,

У textarea есть событие change - http://api.jquery.com/change/
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2012, 22:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Shitbox2
Так-то оно так, но нужен универсальный метод
Нет пока такого метода. Была такая попытка: https://developer.mozilla.org/en-US/...utation_events . Но не взлетело.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как применить css ко всем элементам внутри блока MaxB jQuery 12 28.05.2010 07:56
Скроллбар, как сделать свой? Destrifer Элементы интерфейса 2 01.12.2008 23:48
Как добавить свой блог в раздел feeds этого сайта IzumeRoot Ваши сайты и скрипты 13 30.10.2008 21:11
Обращение к элементам js, как в xsl GOll Общие вопросы Javascript 1 27.06.2008 14:47
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55