Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вопрос о UI Widget Factory (https://javascript.ru/forum/jquery/18689-vopros-o-ui-widget-factory.html)

prefix 11.07.2011 18:33

Вопрос о UI Widget Factory
 
Здравствуйте!
Пытаюсь разобраться с widget factory. Пишу виджет, который добавляет в контейнер некие элементы. Возник вопрос.

Допустим есть такой код:

$.widget('ui.myw', function() {
     ...
     _init: function() {
          this.my_new_element = this._addMyNewElement();

          this._trigger('created');
     },
     ...
});


Проблема в том, что селектором для создания этого объекта является контейнер, а не сам элемент (которого еще нет, ведь его создает этот виджет). Соответственно this указывает на контейнер и событие присоединяется к нему. Это вызывает проблемы, например, когда таких экземпляров много и все они вставляют элемент в контейнер, в итоге все события навешиваются на контейнер.

Собственно вопрос: как лучше поступать в подобных случаях?

Возможно надо делать как-то так (пример вызова):

$.myw({
     container: $("#container"),
     name: 'cool_element',
     created: function() {
          alert('created event is fire');
     }
});


То есть указывать селектор контейнера как параметр, но тогда чем будет this и как его переуказать на созданный элемент? Возможно где-то нужно сделать call() с нужным контекстом? Подскажите где и как :)

Заранее спасибо.


Часовой пояс GMT +3, время: 18:44.