Показать сообщение отдельно
  #1 (permalink)  
Старый 11.07.2011, 18:33
Новичок на форуме
Отправить личное сообщение для prefix Посмотреть профиль Найти все сообщения от prefix
 
Регистрация: 11.07.2011
Сообщений: 1

Вопрос о 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() с нужным контекстом? Подскажите где и как

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

Последний раз редактировалось prefix, 11.07.2011 в 20:29.
Ответить с цитированием