не понимаю как задать правильный контекст
Здраствуйте.. подскажите, пожалуйста, где я лаганулся.. буду очень признателен..
есть такой код...
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, время: 21:25. |