//动态公告
var n=0;
var m=0
function bulletin(){
$(function(){
var $firstNode = $('#bulletin>ul>li');
$firstNode.eq(n).fadeOut('slow',function(){
$firstNode.eq(n+1).fadeIn("slow");
m++;
if(m>=$('#bulletin>ul>li').length)
{
n=0;
m=0;
$firstNode.eq(0).fadeIn('slow');
}
else
{
n++;
}
});
});
}
setInterval('bulletin()',2500);
//动态排行榜
var s=0;
function topsearch(obj){
$(function(){
var list = $(obj).get();
if(list.length==0) return;
if(s%2==0){
for(var i=0;i<10;i++){
$(list[i]).toggle('fast');
$(list[i]).slideUp('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideDown('slow');
}
}else{
for(var i=0;i<10;i++){
$(list[i]).toggle('slow');
$(list[i]).slideDown('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideUp('slow');
}
}
s++;
if (s>200000) s=0;
});
}
setInterval('topsearch("#top_search_txt_cont>li")',5000);
var g=0;
function topgroups(obj){
$(function(){
var list = $(obj).get();
if(list.length==0) return;
if(g%2==0){
for(var i=0;i<10;i++){
$(list[i]).toggle('fast');
$(list[i]).slideUp('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideDown('slow');
}
}else{
for(var i=0;i<10;i++){
$(list[i]).toggle('slow');
$(list[i]).slideDown('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideUp('slow');
}
}
g++;
if (g>200000) g=0;
});
}
setInterval('topgroups("#top_groups_txt_cont>li")',5000);
当单独运行其中一个的时候,都没有问题,如果同时启用,则会出现混乱,表现为显示顺序不为预定顺序,而且有些随机性,有时候还会出现比较长的延时,我估计是3个计时器互相干扰造成的。
或者说是由于后两个中有循环,当第一个计时器开始运行的时候,后面的循环没有结束,所以造成了等待?
请给出解决思路,我想知道原因。
这个脚本是jQuery的。
var n=0;
var m=0
function bulletin(){
$(function(){
var $firstNode = $('#bulletin>ul>li');
$firstNode.eq(n).fadeOut('slow',function(){
$firstNode.eq(n+1).fadeIn("slow");
m++;
if(m>=$('#bulletin>ul>li').length)
{
n=0;
m=0;
$firstNode.eq(0).fadeIn('slow');
}
else
{
n++;
}
});
});
}
setInterval('bulletin()',2500);
//动态排行榜
var s=0;
function topsearch(obj){
$(function(){
var list = $(obj).get();
if(list.length==0) return;
if(s%2==0){
for(var i=0;i<10;i++){
$(list[i]).toggle('fast');
$(list[i]).slideUp('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideDown('slow');
}
}else{
for(var i=0;i<10;i++){
$(list[i]).toggle('slow');
$(list[i]).slideDown('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideUp('slow');
}
}
s++;
if (s>200000) s=0;
});
}
setInterval('topsearch("#top_search_txt_cont>li")',5000);
var g=0;
function topgroups(obj){
$(function(){
var list = $(obj).get();
if(list.length==0) return;
if(g%2==0){
for(var i=0;i<10;i++){
$(list[i]).toggle('fast');
$(list[i]).slideUp('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideDown('slow');
}
}else{
for(var i=0;i<10;i++){
$(list[i]).toggle('slow');
$(list[i]).slideDown('slow');
}
for(var j=10;j<20;j++){
$(list[j]).slideUp('slow');
}
}
g++;
if (g>200000) g=0;
});
}
setInterval('topgroups("#top_groups_txt_cont>li")',5000);
当单独运行其中一个的时候,都没有问题,如果同时启用,则会出现混乱,表现为显示顺序不为预定顺序,而且有些随机性,有时候还会出现比较长的延时,我估计是3个计时器互相干扰造成的。
或者说是由于后两个中有循环,当第一个计时器开始运行的时候,后面的循环没有结束,所以造成了等待?
请给出解决思路,我想知道原因。
这个脚本是jQuery的。
======================
问题还是没有解决,继续请教
function aa(){
setInterval(...);
setInterval(...);
setInterval(...);
}
这样试试呢
var b = setInterval(...b);