-1

乱数を実行し続けるために onclick を開始するボタンを作成したい (使用

  1. または 2. 呼び出します) しかし、それを押すと、エラー メッセージに「Uncaught」と表示されます。

ReferenceError: spanArray が定義されていません」というメッセージが表示されますが、数値を超えたまま実行されているため、実行できません

どこが間違っているかを理解します。

PSしかし、3を使用すると正常に動作します。

どうも!

thx 私が 3 で試した完全なコードはhttp://jsfiddle.net/eVyjC/です

function computeRandom(){
// skip code: have used loop to create six spans already
var spanArray = document.getElementsByTagName("span");
//1.document.write("<input type =  button  value = 'start' onclick = \"passKeepMove(value,spanArray) \"  name = button1>");
//2.document.write("<input type =  button  value = 'start' onclick =  \"setInterval(function(){keepMove(value,spanArray);}, 10) \"  name = button1>");
//3.setInterval(function(){keepMove(value,spanArray);}, 10) ;
   }


function keepMove(val,sp){//call by pointer 

    var index = parseInt(Math.random()*43);//set a increment to avoid repeatition

    for( i = 0; i < sp.length; i++){
    sp[i].innerHTML = val[i+index];
    }
}


function passKeepMove(v,s){
    setInterval(function(){keepMove(v, s);}, 10);
}
4

1 に答える 1

2

var前はローカル変数var spanArrayを作っています。したがって、の関数スコープspanArray外ではアクセスできません。computeRandom

グローバル変数を必要としないように、グローバルにするか、より良い設計を考え出す必要があります。

于 2012-05-22T04:40:25.190 に答える