2013-05-01 2 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 개의 함수를 가지고 있으며, 내 주체에서는 Effect를 추가해야하므로 배열에 넣고 EffectBom 개체를 사용합니다.다른 함수에서 변수 사용 jquery

이제 큰 문제는 다른 함수에서 self2.removeEffect()를 사용해야하지만 찾을 수 없다는 것입니다.

읽기 용 Thnx - 도와주세요!

+1

여기가 중첩이 잘못된 것으로 변경합니다. 중간에 여분의'}'이 있고 마지막에는'}'이 없습니다. – cdhowie

+0

코드의 형식을 올바르게 지정하십시오. –

답변

0

변수의 범위를 변경해야합니다. 파일의 상단에

var self2; 

를 추가하고

var self2 = this; 

self2 = this; 
+1

이 방법으로 문제가 해결되지만 절대적으로 필요한 경우가 아니라면 전역 변수 사용을 제안하는 대답을 취소 할 수 없습니다. – cdhowie

+0

당신은 질문자가 제시 한 것을 주어 대안을 제안합니까? – Ding

+1

Asker의 코드가 불완전하고 중첩 문제가 있으므로이 시점에서 정확하고 최적의 대답을 결정하는 데 필요한 정보가 충분하지 않습니다. – cdhowie

관련 문제