【问题标题】:Jquery Random Array DeleteJquery 随机数组删除
【发布时间】:2013-05-30 19:02:27
【问题描述】:
var items = ["1","2","3","4","5","6","7","8","9","10","11","12"];
function bigger(){
    for(var i=0;i<items.length;i++){
        a = [Math.floor(Math.random() * items.length)+1];
        scale(a);   
    }   
}
function scale(number){
    $("#inner"+number+"").delay(100).transition({scale:1},300);
    items.splice(number,1);
} 
bigger();

这是我的代码,我尝试删除数字并使用直到完成数组,我想逐个 1 进行操作

【问题讨论】:

  • for 循环替换为while(items.length &gt; 0),否则您的循环将在数组为空之前停止。从a = [Math... 中删除[] - 您正在创建一个包含一个元素的数组并将该数组传递给scale()
  • P.S. delay() 仅对单个元素的动画队列应用延迟,因此您的所有元素都将立即处理。

标签: jquery arrays function random numbers


【解决方案1】:

您需要splice() 的数组中数字的索引,而不是字符串本身:

items.splice( items.indexOf(number), 1 );

只打乱数组并弹出最后一个值以获得随机数组索引可能会更容易,同时将其从数组中删除:

var items = ["1","2","3","4","5","6","7","8","9","10","11","12"];

function scale(){
    var number = items.sort(function() { return 0.5 - Math.random();}).pop();
    $("#inner"+number+"").delay(100).animate({opacity:1},300, function() {
        scale();
    });
} 

scale();

不确定.transition() 方法来自哪里,但猜测它有回调?

FIDDLE

【讨论】:

  • 非常感谢它的工作如此出色,并且转换是 ricostacruz.com/jquery.transit 为每个浏览器轻松转换 jquery thnx 工作正常,就像我想要的那样
  • 每次它给出相同的订单我想每次都不同的订单:(
  • @UğurOruc - 我的错,似乎我搞砸了随机函数,现在修复它。
【解决方案2】:

你需要

items.splice($.inArray(number, items),1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-07
    • 2021-04-12
    • 2021-06-02
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多