2010-02-06 20 views
0

我有些jQuery的打算在這裏:jQuery的挑選下一格在列表中顯示

$('#ticker1').hide(); 
$('#ticker2').hide(); 
$('#ticker3').hide(); 

$("#ticker").oneTime(2000,function(i) { /* Do the first pull out once */ 

    var randomNum = Math.floor(Math.random()*3); /* Pick random div to show */ 
    $('div#ticker div:eq(' + randomNum + ')').show(); 

    $("#ticker").animate({right: "0"}, {duration: 800 }); 

}); 

$("#ticker").oneTime(20000,function(i) { /* Do the first retract once */ 

    $("#ticker").animate({right: "-450"}, {duration: 800}); 

    $("#ticker").oneTime(1000,function(i) { 

     $('#ticker1').hide(); 

    }); 

}); 

$("#ticker").everyTime(21500,function(i) { /* Everytime timer gets to certain point */ 

    var randomNum = Math.floor(Math.random()*3); 
    $('div#ticker div:eq(' + randomNum + ')').show(); 

    $("#ticker").animate({right: "0"}, {duration: 800}); /* Pull out right away */ 

    $("#ticker").oneTime(20000,function(i) { /* Retract once */ 

     $("#ticker").animate({right: "-450"}, {duration: 800}); 

    }); 

    $("#ticker").oneTime(21000,function(i) { /* Hide all divs once */ 

     $('#ticker1').hide(); 
     $('#ticker2').hide(); 
     $('#ticker3').hide(); 

    }); 

}); 

我試圖得到它顯示一個隨機div的,第一次翻出,這在已經完成代碼的第一部分。但之後,我現在每次都抓取一個隨機div(3個div)。我需要更改這部分代碼,以便查看3個div的列表,並且每次都會下一個。

因此,如果第一次拉出格爲2那之後每次會在這個順序去:DIV 3,1區,2區,3 DIV,DIV 1等

這裏是一個現在正在發生的事情的演示:treethink.treethink.net/backup

感謝, 韋德

+0

爲什麼你在不使用'this'的情況下使用oneTime?使用setTimeout。另外,查看jQuery動畫回調。 – 2010-02-06 01:30:18

回答

0

,而不是產生新的隨機數,每次,首先生成它,然後用國防部3遞增它,你會按順序得到下一個div。例如,如果您的隨機數生成2,則下一個將是3%3 = 0,然後是1%3 = 1,然後是2%3 = 2,依此類推。

var randomNum = Math.floor(Math.random()*3); 

$("#ticker").everyTime(21500,function(i) { /* Everytime timer gets to certain point */ 

randomNum = (randomNum+1)%3; 

$('div#ticker div:eq(' + (randomNum) + ')').show(); 


$("#ticker").animate({right: "0"}, {duration: 800}); /* Pull out right away */ 


$("#ticker").oneTime(20000,function(i) { /* Retract once */ 

    $("#ticker").animate({right: "-450"}, {duration: 800}); 

}); 

$("#ticker").oneTime(21000,function(i) { /* Hide all divs once */ 

    $('#ticker1').hide(); 
    $('#ticker2').hide(); 
    $('#ticker3').hide(); 

}); 
}); 
+0

非常感謝。實際上我現在只有一個問題。前兩個是相同的,所以第一個將是一個隨機數,下一個將會是相同的數字,然後它會上一個。我改變$('div#ticker div:eq('+(randomNum ++%3)+')')。show();到$('div#ticker div:eq('+(randomNum + 1)+')')。show();並修正了這個問題,但之後它不會顯示下一個只停留在同一個。 – 2010-02-06 01:49:41

+0

如果你把它分成兩行,它可能會解決你的問題,問題是它實際上並沒有隨randomNum更新randomNumber + 1 – 2010-02-06 01:55:28

+0

我該如何解決這個問題?對不起,我對jQuery很陌生。 – 2010-02-06 01:56:25

相關問題