设置要在另一个函数中使用的变量

时间:2016-02-10 21:02:27

标签: javascript

使用边缘动画,我似乎无法控制我正在寻找的操作顺序。我有一个操作开关的功能,另一个测试一个或多个开关的条件。我遇到的问题是边缘一直想要在切换之前运行测试。

我可以让交换机启动测试,但遇到了我在边缘内的数组中加载对象的问题。我在想的是我需要一种预加载函数可以使用的变量的方法,但它们不需要是全局的,因为它们仅用于这一个函数。

这是我到目前为止所拥有的。

内部边缘动画:

twoPhaseSwitch('.btn1','on'); //sets up switch 1
twoPhaseSwitch('.swtch1','off'); //sets up switch 2
conditionsArray(['.btn1','.swtch1']); // tells the test script what the buttons are

在JavaScript文件中:

function twoPhaseSwitch(object,state)
{
    var obj = $(object);
    stage.getSymbol(obj).stop(state);
    obj.data('state',state);

    obj.mousedown(function(e)
    {
        if(obj.state == 'off')
        {
            stage.getSymbol(obj).stop('on');
            obj.state = 'on';
            obj.data('state','on');
        }else{
            stage.getSymbol(obj).stop('off');
            obj.state = 'off';
            obj.data('state','off');
        };
    });
};

function conditionsArray(obj)
{
    var answers = ['on','on'];

    // compare lengths
    if (obj.length != answers.length)
    return 'Argument Miscount';

    var challengResults = challangeArray();

    if (challengResults == true)
    {
        lightOn('.LED1','on');
    }else if(challengResults == false)
    {
        lightOn('.LED1','off');
    };
    console.log(challengResults);

    function challangeArray()
    {
        for (var i = 0, l=obj.length; i < l; i++) 
        {
            if ($(obj[i]).data('state') != answers[i]) { 
                return false;
            }      
        }
        return true;
    };
};

function lightOn(lightOBJ,state)
{
    lightOBJ = $(lightOBJ);
    stage.getSymbol(lightOBJ).stop(state);  
};

我目前使用mousedown和mouseup伪造操作顺序,但它带来了一些非常不可接受的问题,所以我试图做到这一点。

1 个答案:

答案 0 :(得分:1)

您是否尝试将代码包装在

$( document ).ready(){ your code here }

在页面加载之前阻止任何javascript运行?