0

この jsfiddle を見てください: http://jsfiddle.net/ne6sg/2/

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script>
$(document).ready(function() {
setInterval(function(){
var interval = 500;
var paras = $('font');
var rand = Math.floor(Math.random() * paras.length);    
paras.eq(rand).addClass('red');
 },500);   
});
</script>
 <style>
.red {
    color: red;
}
 </style>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>  
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>

すべてが完璧に機能しています。スクリプトを実行すると、setInterval 関数を使用してクラスを一定の速度で指定し、ランダムにページ要素にクラス .red を指定します。このレートは、スクリプトの 7 行目の数値によって定義されます。この数を大きくすると、間隔が大きくなるため、クラスが追加される速度が遅くなります。

しかし、7行目の数値を整数変数にしたいのですが、うまくいきません。

結論として、なぜこれが機能しないのですか: http://jsfiddle.net/ne6sg/3/ ?

  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script>
$(document).ready(function() {
setInterval(function(){
var interval = 500;
var paras = $('font');
var rand = Math.floor(Math.random() * paras.length);    
paras.eq(rand).addClass('red');
 },(interval));   
});
</script>
 <style>
.red {
    color: red;
}
 </style>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>  
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>
<font color=#040404>Frabjous Day</font>

お時間をいただきありがとうございます。

4

2 に答える 2

2

intervalの範囲外で定義するsetInterval

var interval = 500; // this line, declare it here

setInterval(function(){

    var paras = $('font');
    var rand = Math.floor(Math.random() * paras.length);    
    paras.eq(rand).addClass('red');

}, interval); // so it exists in this context
于 2013-02-13T20:01:29.710 に答える
0

関数内で変数を定義し、intervalそれをすぐ外側で使用しようとしています。js 部分は次のようになります。

$(document).ready(function() {
    var interval = 500;
setInterval(function(){
    var paras = $('font');
    var rand = Math.floor(Math.random() * paras.length);    
    paras.eq(rand).addClass('red');
     },1);   
});

これを参照してください: http://jsfiddle.net/ne6sg/6/

于 2013-02-13T20:05:24.840 に答える