2011-08-31 101 views
0

我正在開發一個jQuery應用程序的多個隨機的div。我有10個引號的div。我正在嘗試創建一個函數,它需要一個數字並從10個div中隨機顯示10秒的引號數並隱藏div。然後再重複這個過程。我一直無法做到,請幫助我。這裏是我的代碼:顯示和隱藏使用jQuery

$(document).ready(function(){ 

    var div_number = 4; 
    var used_numbers = new Array(); 
    var todo = setInterval(showQuotes(),3000); 

    function showQuotes(){ 
     used_numbers.splice(0,used_numbers.length); 
     $('.quotes').hide(); 
     for(var inc = 0; inc<div_number; inc++) { 
      var random = get_random_number(); 
      $('.quotes:eq('+random+')').show(); 
     } 
     $('.quotes').fadeOut(3000); 
    } 

    function get_random_number(){ 
     var number = randomFromTo(0,9); 
     if($.inArray(number, used_numbers) != -1) { 
      get_random_number(); 
     } 
     else { 
      used_numbers.push(number); 
      return number; 
     } 
    } 
    function randomFromTo(from, to){ 
     return Math.floor(Math.random() * (to - from + 1) + from); 
    } 
}); 
+1

習慣它,如果你有一個DIV和十個報價數組,它會隨機裏面顯示好得多你的div? – naveen

回答

4

改變我做:前

  • 通過樣式隱藏推出.quotes
  • 運行showQuotes()前一次的setInterval(showQuotes,10000),並
  • 添加.delay()褪色的報價出來
  • PY的 '迴歸' 添加到get_random_number

http://jsfiddle.net/cMQdj/1/

的改變的JavaScript:

$(document).ready(function() { 
    var div_number = 4; 
    var used_numbers = new Array(); 
    showQuotes(); 
    var todo = setInterval(showQuotes, 10000); 

    function showQuotes() { 
     used_numbers.splice(0, used_numbers.length); 
     $('.quotes').hide(); 
     for (var inc = 0; inc < div_number; inc++) { 
      var random = get_random_number(); 
      $('.quotes:eq(' + random + ')').show(); 
     } 
     $('.quotes').delay(6000).fadeOut(3000); 
    } 

    function get_random_number() { 
     var number = randomFromTo(0, 9); 
     if ($.inArray(number, used_numbers) != -1) { 
      return get_random_number(); 
     } else { 
      used_numbers.push(number); 
      return number; 
     } 
    } 
    function randomFromTo(from, to) { 
     return Math.floor(Math.random() * (to - from + 1) + from); 
    } 
}); 

,並添加到您的樣式表:

.quotes {display:none} 
+0

完美。非常感謝您的參與。 jsfiddle演示非常棒! – Adam

+0

很高興聽到它,請不要忘記接受你最喜歡的答案。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Blazemonger

2

我沒測試過的一切,但我已經看到,可能會阻止你一分,get_random_number並不總是返回一個數字。要做到這一點,它應該是

function get_random_number(){ 
    var number = randomFromTo(0,9); 
    if($.inArray(number, used_numbers) != -1) 
     { 
     return get_random_number(); 
     } 
    else 
     { 
     used_numbers.push(number); 
     return number; 
     } 
} 

希望有所幫助。

+0

感謝您的時間。我忘記了這一點。 – Adam