Показать сообщение отдельно
  #4 (permalink)  
Старый 18.06.2009, 11:48
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Цитата:
Заверни обработчик в функцию, и в ней вызывай его в нужном контексте.
Не помогает, если я правильно понял конечно, через call тоже.
Вот простенький пример, иллюстрирующий проблему
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Пример</title>
<style type="text/css">
#button {background:#f00; color:#fff; font-weight:bold; padding:3px 5px; cursor:pointer; float:left}
</style>
<script type="text/javascript">
window.onload= function() {
obj= new myclass(document.getElementById('button'))
}
function myclass(objref) {
	this.message="Я обект, тарм-пам пам"
	this.obj=objref
	myclass.prototype.helloworld = function() {
		alert(this.message) //Должен при клике на кнопку сказать 'Я обект, тарм-пам пам', а сообщает undefined
	}
	
	this.obj.onclick=this.helloworld;
	//this.obj.onclick=this.helloworld.call(this); 
	//this.obj.onclick=function() {this.helloworld()}; 
	//this.obj.onclick=myclass.prototype.helloworld.call(this); //- это все тоже не работает
}
</script>
</head>
<body>
<div id="button">нажмии меня</div>
</body>
</html>
Ответить с цитированием