Здравствуйте!
Пытаюсь разобраться с 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() с нужным контекстом? Подскажите где и как
Заранее спасибо.