页面加载时链接在页面上闪烁5次。
$(document).ready(function() {
function1(1);
//some more functions
});
function function1(hide){
if((hide<10)){
if (hide%2==1){
$('.myclass2').css("color","black");
}
else{
$('.myclass2').css("color","white");
}
hide = hide+1;
}
else{
//some code to stop performing of this function.
}
setTimeout("blinks("+hide+")",300);
}.
结果,类myclass2以300ms闪烁10/2 = 5次。一旦变量hide达到10,则function1什么都不做(只是递归地检查是否(隐藏&lt; 10)无限次数)。 附: 停止执行function1是否有意义? 如果是,那怎么办?
重要说明:.ready()不仅包含function1,还包含其他功能。他们应该继续工作。
谢谢。
答案 0 :(得分:1)
$(document).ready(function() {
var blink = setInterval("function1(1)",300);
//some more functions
});
并结束功能:
clearInterval(blink);
答案 1 :(得分:1)
当function1创建一个新的Timeout来反复调用时,只需将Timeout-creation信息移动到if子句中,这样只有在“hide&lt;”时才会触发它。 10“是真的。这样它就不会再次表现了。
是的,我想确实有意义地阻止函数一次又一次地执行,如果它没有做任何事情。
您的代码现在看起来像这样:
function function1(hide){
if((hide<10)){
if (hide%2==1){
$('.myclass2').css("color","black");
}
else{
$('.myclass2').css("color","white");
}
hide = hide+1;
setTimeout("blinks("+hide+")",300); // moved here
}
else{
//some code to stop performing of this function.
}
}.