Показать сообщение отдельно
  #11 (permalink)  
Старый 19.08.2012, 22:30
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от LittlePony
А точек с запятыми где не хватает?
почти везде )

LittlePony, как же вы такие большие коды лепите, если не понимаете, что происходит
Давай мы поступим следующим образом, ты выложишь небольшой рабочий пример, который тебе не ясен.

пробуй так
paradiseBoom: function(){
	var self = this;
	var $happiness = $(self.el).children("li")
	var animateDuration = self.animateDuration
	var animateDelay = self.animateDelay
	function AddActiveMarker(index){
		var $cHappiness = $happiness.eq(index)
		if($cHappiness.size()==1){
			$("#eden").show()
			switch(index){
				case 0:
					$("#tree")
						.css({opacity:0,display:"block"})
						.animate({opacity:1},{duration:animateDuration})
					break
				case 1:
					$("#mrpostman")
						.css({opacity:0,display:"block"})
						.animate({opacity:1},{duration:animateDuration})
					break
				case 2:
					$("#bench")
						.css({opacity:0,display:"block"})
						.animate({opacity:1},{duration:animateDuration})
					break
			}
			$("<span class=activemarker />")
				.css({opacity:0})
				.appendTo($cHappiness).animate({opacity:1},{duration:animateDuration,complete:function(){
					if(self.state=="boom") setTimeout(function(){AddActiveMarker(index+1)},animateDelay)
				}})
		}
	}
	AddActiveMarker(0,self);
}

признаться, долго тупил, пытаясь понять, что происходит. melky, прав. Ситуация следующая (как я понял):
первый раз ты вызываешь метод paradiseBoom так: paradise.paradiseBoom. Здесь все нормально, this там правильный. Когда у тебя происходит это setTimeout(function(){AddActiveMarker(index+1,obj) },animateDelay), то this там window. Хотя это роли не играет

p.s.: это все на ночь глядя, так что на истину не претендую
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 19.08.2012 в 23:06.
Ответить с цитированием