用于更改全局变量值的JavaScript函数

用于更改全局变量值的JavaScript函数,javascript,debugging,animation,parameters,global-variables,Javascript,Debugging,Animation,Parameters,Global Variables,我在做一个动画,我试图控制显示什么和不显示什么。 要做到这一点,我要设置IF条件,如果var x=0,则不显示,如果var x=1,则显示 到目前为止,我已经让它工作了(当我指定var x=1时,它工作了),它只是一个改变值的语句,不起作用,我想是因为范围的原因,但我希望有人能帮我一把 这个想法是,如果你点击“黑色”,它会显示一些扬声器 非常感谢 window.onload = init; function init() { var white = paper.rect

我在做一个动画,我试图控制显示什么和不显示什么。 要做到这一点,我要设置IF条件,如果var x=0,则不显示,如果var x=1,则显示

到目前为止,我已经让它工作了(当我指定var x=1时,它工作了),它只是一个改变值的语句,不起作用,我想是因为范围的原因,但我希望有人能帮我一把

这个想法是,如果你点击“黑色”,它会显示一些扬声器

非常感谢

    window.onload = init;

    function init() {
    var white = paper.rect( 740, 575, 20, 20);
    var black = paper.rect( 770, 575, 20, 20);
    var yellow = paper.rect( 40, 575, 20, 20);
    var audio = new Audio('sound.mp3');
    var displaySpeakers = 0;


    function displayFunction() {
    displaySpeakers = 1;
    }

    function speakers() {
    if (displaySpeakers == 0)
        return;
 // otherwise this function displays the speakers
     }

    speakers(); // this calls the speakers.

    black.attr({fill: "black", stroke: "none"}).click(function(){displayFunction();});

 // Black should display the speakers
    };

正如蒂姆所说,您不调用
扬声器
功能。您在
onload
事件后调用它一次,但当您单击
black
时,只需将
displaySpeakers
的值更改为1


未调用
扬声器
函数,因此无法知道值已更改。您只需将
扬声器
调用到
显示功能
中,或直接调用
单击
功能

你从来没有在发布的代码中调用过
speakers()
,也许我们需要更多的上下文。我过滤了一些不相关的代码。我调用底部第四行的扬声器,然后单击黑色将var displaySpeakers更改为1,扬声器将显示。为什么这不起作用?如果所有的代码都放在
init()
(看起来像这样),那么
displaySpeakers就不会有问题了。或者在帖子里有更多丢失/错放的花括号吗?谢谢,我现在明白了。每次“更新”值时,speaker()必须再次运行。因此,多次运行speaker(),因此如果我将displaySpeakers的值设置为0并运行它,它将不会再次出现,但仍将显示上一次运行。这解决了另一个问题。。。有什么想法吗?@MTTPC没有更多的代码我不能准确地告诉你,也许你应该把你的演讲者HTML代码嵌入一个带有id的div,然后调用JQuery函数。