2013-05-01 64 views
-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。在其他函數中使用變量jquery

現在最大的問題是我需要在我的其他功能中使用self2.removeEffect(),但它找不到它!

Thnx for reading - help!

+1

你在這裏築巢是錯誤的。你在中間有一個額外的'}',在末尾有一個'}'缺少。 – cdhowie 2013-05-01 18:06:16

+0

正確設置代碼的格式 – 2013-05-01 18:26:27

回答

0

您需要更改變量的範圍。添加

var self2; 

到文件的頂部,改變

var self2 = this; 

self2 = this; 
+1

儘管這樣可以解決問題,但我無法提出一個答案,建議使用全局變量,除非絕對必要。 – cdhowie 2013-05-01 18:13:16

+0

您是否因爲提問者提出了什麼提議? – Ding 2013-05-01 18:14:28

+1

提問人員的代碼不完整,並且存在一些嵌套問題,因此此時沒有足夠的信息來確定正確和最佳的答案。 – cdhowie 2013-05-01 18:15:15