显示和隐藏使用jQuery

问题描述:

我正在开发一个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

改变我做:前

  • 通过样式隐藏推出.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

我没测试过的一切,但我已经看到,可能会阻止你一分,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