не понимаю как задать правильный контекст
Здраствуйте.. подскажите, пожалуйста, где я лаганулся.. буду очень признателен..
есть такой код... dojo.declare('someclass', null, { constructor: function() { this._connect(); }, /* constructor */ _connect: function() { dojo.query('.slider-see-details', 'slider').onclick(function(evt) { console.log(this, 'this'); this._insHtml(); }); }, /* _connect */ _insHtml: function() { console.log('hello world'); } /* _insHtml */ }); проблема в следующим... в первом консол.логе, там где ссылка на this, выводится елемент дом дерева, а не текущего класа, я так понял, что это происходит потому-что this ссылается на контекст dojo.query(), а не на контекст класа someclass. Как можно визвать из контекста dojo.query() метод someclass._insHtml???? помогите, пожалуйста, ибо вопрос у меня этот уже возникает не первый раз, а ответа все не нахожу.. заранее спасибо.. |
вот подсказали на другом форуме:
доджовский метод... dojo.query('.slider-see-details', 'slider').onclick(dojo.hitch(this, function(evt) { console.log(this, 'this'); this._insHtml(); })); и без доджо... var self = this; dojo.query('.slider-see-details', 'slider').onclick(function(evt) { console.log(self, 'self'); self._insHtml(); }); может кому пригодится, у кого, может, будет такае же проблема... |
так же можно это было решить третьим способом
_connect: function() { var self = this; dojo.query('.slider-see-details', 'slider').onclick(function(evt) { console.log(self, 'this'); self._insHtml(); }); }, /* _connect */ |
Часовой пояс GMT +3, время: 16:17. |