2013-02-13 122 views
0

这么好心地看看这个的jsfiddle: http://jsfiddle.net/ne6sg/2/将一个变量整数传递给jquery函数?

<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函数以设定的速率赋予类。此费率由脚本的第7行上的数字定义。当这个数字变大时,由于间隔较大,因此课程加入的速度会减慢。

但是,我希望line7上的这个数字是一个整数变量,但我无法让它工作。

结论,为什么不这样做: 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> 

非常感谢您的时间。

+0

你的两个小提琴是相同BTW – 2013-02-13 20:02:06

+0

啊,我们对此深感抱歉! – Starkers 2013-02-13 20:12:24

回答

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 
+0

非常感谢布鲁诺,我现在看到了我的不喜欢的方式的错误! – Starkers 2013-02-13 20:11:42

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/

+0

感谢jsfiddle! – Starkers 2013-02-13 20:13:30