Как применить свой плагин к вновь созданным элементам?
Например, мой плагин для 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 сразу, без всяких нажатий на что-либо. |
Плагин не применится пока вы его не вызовете
то есть вам надо указать к каким элементам его применить $('someElement1', ... , 'someElementN').pluginName(); тут про обработчики |
А когда его вызвать? К примеру, он должен скрывать все textarea и показывать вместо них элемент со своей логикой. По идее его нужно вызвать в момент появления нового поля ввода, но как узнать когда это поле появилось? Т.е. нужно отслеживать изменения dom и искать в них. Как это сделать?
|
ну у вас же в коде есть момент вставки элемента textarea, добавьте после него вызов плагина, приминительно к новому элементу
элементы же у вас не спотолка берутся, а как-то добавляются |
Так-то оно так, но нужен универсальный метод. Постоянно следить и подключать плагин — не вариант. Тем более, в коде могут быть не только мои куски
|
Да, и можно еще отследить, когда в textarea поменялся текст, причем поменялся не вручную, а скриптом? Ковырял onpropertychange но как-то ненаковырял
|
|
Цитата:
|
Часовой пояс GMT +3, время: 14:47. |