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

Доступ к свойству класса в event handler'e DOM-елемента
Добрый день. Нетривиальная задача:
<div id="div-test">
	Click me
</div>

пример 1:
function Test(id)
{	
	this._var = 5;
	
	$(id).click(this.onclick); // вешаем обработчик с помощью jquery
}

Test.prototype.onclick = function()
{	
	alert(this._var); // 'undefined'
}

var t = new Test("#div-test");


Само собой, при клике на div'е я получаю 'undefined' ибо this в контексте вызова ссылается на DOM елемент.

Этот пример 2:
function Test(id)
{	
	this._var = 5;
	
	var _var = this._var;
	
	var onclick = function()
	{		
		alert(_var); // 5
	}
	
	$(id).click(onclick);
}

var t = new Test("#div-test");
...
var t2 = new Test("#some-id");

плох тем, что при создании нового t2 объекта мы получим еще одну копию var onclick обработчика. Я прав?

Есть ли возможность оставить описание обработчика прототипом и "достучаться" до this._var ?

Последний раз редактировалось Cisco, 31.03.2010 в 12:11.
Ответить с цитированием