Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2010, 21:36
loz loz вне форума
Новичок на форуме
Отправить личное сообщение для loz Посмотреть профиль Найти все сообщения от loz
 
Регистрация: 25.10.2010
Сообщений: 4

не понимаю как задать правильный контекст
Здраствуйте.. подскажите, пожалуйста, где я лаганулся.. буду очень признателен..
есть такой код...

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????
помогите, пожалуйста, ибо вопрос у меня этот уже возникает не первый раз, а ответа все не нахожу.. заранее спасибо..
Ответить с цитированием
  #2 (permalink)  
Старый 26.10.2010, 15:07
loz loz вне форума
Новичок на форуме
Отправить личное сообщение для loz Посмотреть профиль Найти все сообщения от loz
 
Регистрация: 25.10.2010
Сообщений: 4

вот подсказали на другом форуме:
доджовский метод...
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();           
});


может кому пригодится, у кого, может, будет такае же проблема...
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2011, 17:36
Новичок на форуме
Отправить личное сообщение для Толя Посмотреть профиль Найти все сообщения от Толя
 
Регистрация: 17.02.2011
Сообщений: 2

так же можно это было решить третьим способом
_connect: function() {
   var self = this;     
   dojo.query('.slider-see-details', 'slider').onclick(function(evt) {
      console.log(self, 'this');
      self._insHtml();           
   });
 }, /* _connect */
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 19:24
Как правильно задать ID в создаваемом элементе ? Indiana Events/DOM/Window 15 31.10.2010 15:15
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 13:57
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 08.02.2010 23:00
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 22:20