-1
function Main(BombPosTopr, BompPosLeftr){
if (CheckRight == false){
        //$("#Main").prepend('<div class="Effect" style="absolute; top:' + BombPosTopr + 'px; left: '+ BombPosLeftr +'px;"></div>');
        ArrayEffects.push(new EffectVoorBom(BombPosTopr,BombPosLeftr));
        BombPosLeftr += 30;
        }
        };

        this.explosionTime2 = setTimeout( function(){ 
        **self2.removeEffect();**
        }

}
function EffectBom(BombPosTopr, BompPosLeftr){
var self2 = this;
this.el = $('<div/>');
this.el.addClass('Effect');
this.el.css({position : 'absolute', top : BombPosTopr + 'px', left : BompPosLeftr+'px'});
$("#Main").prepend(this.el);


self2.removeEffect = function(){
**self2.el.remove();**
}

2 つの関数があり、メインにエフェクトを追加する必要があるため、それらを配列に入れてオブジェクト EffectBom を使用します。

ここでの大きな問題は、他の関数で self2.removeEffect() を使用する必要があるが、それが見つからないことです!

読んでくれてありがとう - 助けて!

4

1 に答える 1

0

変数のスコープを変更する必要があります。追加

var self2;

ファイルの先頭に移動して変更します

var self2 = this;

することが

self2 = this;
于 2013-05-01T18:10:01.290 に答える