Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.11.2009, 01:28
Новичок на форуме
Отправить личное сообщение для Shahurik Посмотреть профиль Найти все сообщения от Shahurik
 
Регистрация: 12.11.2009
Сообщений: 2

Как внутри класса вызвать метод из соседнего метода
Доброй ночи.
Проблема: есть класс для изменения прозрачности объекта. Методы: set — установить прозрачность объекта, fade — плавно изменить прозрачность. fade должна вызывает в интервале функцию set. Сначала попробовал вызвать через this.set, однако выдается ошибка «this.set is not a function». Потом определил this в this.self и this.set в this.self.set. Та же ошибка: «this.self.set is not a function»

var opaque=function(elem){
		this.elem=elem;
		this.set=function(opacity){
			this.elem.style.filter=(opacity==1)?"":"alpha(opacity="+opacity*100+")";
			this.elem.style.opacity=opacity;
		};
        this.self=this;//переопределение this
		this.self.set=this.set;
		this.fade=function(from,to,speed){
			opacity=from;
			step=(to>from)?.01:-0.01;
			run=setInterval(function(){
				opacity+=step;
				this.self.set(opacity);//проблемное место
				if(opacity==to){clearInterval(run);}},
				speed   
            );
		};
};
<div id="block">Привет!</div>
<a href="#" id="link">Плавно убрать</a>
<script type="text/javascript">
	var f=new opaque(document.getElementById("block"))
	document.getElementById("link").onclick=function(){f.fade(1,0,1);}
</script>


Подскажите пожалуйста, что неправильно?
Заранее спасибо :–)
Ответить с цитированием
  #2 (permalink)  
Старый 13.11.2009, 08:30
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Shahurik
this.self=this;//переопределение this
Вы this сохраняете в свойстве у this. Это все равно, что запасной ключ от багажника хранить в самом багажнике.
var self = this;
// и т.д.
Ответить с цитированием
  #3 (permalink)  
Старый 13.11.2009, 12:20
Новичок на форуме
Отправить личное сообщение для Shahurik Посмотреть профиль Найти все сообщения от Shahurik
 
Регистрация: 12.11.2009
Сообщений: 2

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как применить css ко всем элементам внутри блока MaxB jQuery 12 28.05.2010 07:56
Как правильно вызвать метод внутри класса? Крот Общие вопросы Javascript 9 12.11.2009 12:00
как вызвать функцию название которой находиться в строке dark Общие вопросы Javascript 3 14.10.2009 13:02
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
как вызвать функцию? pumpurumer jQuery 2 27.08.2009 19:39