2012-04-07 6 views
0

이것은 약간 어색하지만 정적 변수 배열이 필요합니다. 함수가 호출 될 때마다 이러한 변수에 액세스해야합니다. 기본적으로 나는 현재 elapsed_time이라 불리는 단일 변수에 의해 "제어되는"효과 함수를 가지고 있습니다.정적 변수의 배열을 사용하는 방법은 무엇입니까?

그러나 함수에 전달되는 각 요소에 대해 elapsed_time이 필요하므로 동일한 요소에 영향을주지 않도록 할 수 있습니다. (내 페이드 함수의 경우 깜박임 효과가 발생합니다).

내 변수 이름을 element.id으로하고 싶습니다.

난 그냥 그 연관 배열이 정말 연관 배열이 아니며 당신이 그 (것)들에게 here.

아래는 내가 업데이트해야 내 현재 기능은 사용하지 말아야한다는 게시물을 읽어 보시기 바랍니다.

/** 
* Effects 
*/ 

var Effects = function(element) 
{ 
    this.element = element; 
}; 

Effects.prototype.fade = function(direction, max_time) 
{ 
    Effects.elapsed = 0; 
/* 
    Effects.arrayHold = []; 
    Effects.arrayHold.push(this.element.id); 
*/ 
    var persist_element = this.element; 
    function next() 
    { 
     Effects.elapsed += 10; 
     if (direction === 'up') 
     { 
      persist_element.style.opacity = Effects.elapsed/max_time; 
     } 
     else if (direction === 'down') 
     { 
      persist_element.style.opacity = (max_time - Effects.elapsed)/max_time; 
     } 
     if (Effects.elapsed <= max_time) 
     { 
      setTimeout(next, 10); 
     } 
    } 
    next(); 
    return true; 
}; 
+0

심각 배열의 객체를 사용하여 : //api.jquery.com/fadeOut/) jQuery에 내장 된 함수; [fadeToggle()] (http://api.jquery.com/fadeToggle/) 함수도 있습니다. 모두 duration, easing 및 callback 기능 옵션이 있습니다. 브라우저 간 기능에 대해 언급 했습니까? – faino

+0

블로그 게시물에 관심이 있으십니까? 연관 배열을 사용하면 가장 좋은 도구 일 때 함정을 피할 수 있습니다. – stark

+0

배열로 effect를 선언하지 마십시오. ArrayHold를 객체로 사용하고 있기 때문입니다. 그래서 더 잘 사용하십시오. Effects.objectHold = {persust_element.id : 0}; 거기에서 가져 가라. –

답변

1

다만 [fadeIn() (http://api.jquery.com/fadeIn/) 및 [페이드 아웃() (HTTP 들여다 대신

관련 문제