0

这有点尴尬,但我需要一个静态变量数组。每次调用函数时,我都需要访问这些变量。基本上,我有一个由当前称为 elapsed_time 的单个变量“控制”的效果函数。

但是,对于传递给函数的每个元素,我都需要一个 elapsed_time,这样我就可以确保不在同一个元素上运行效果......(对于我的淡入淡出函数,这会导致闪烁效果)。

我想用element.id来命名我的变量。

我刚刚读到一篇文章,说关联数组并不是真正的关联数组,你不应该在这里使用它们。

以下是我需要更新的当前功能。

/**
 *    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;
};
4

1 回答 1

1

只需使用对象而不是数组

于 2012-04-07T21:46:21.083 回答