Сообщение от 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.: это все на ночь глядя, так что на истину не претендую