未捕获的ReferenceError:变量未定义为knuthShuffle

时间:2014-03-18 16:24:33

标签: jquery random

我有一个带图像的变量,我想随机化图像的顺序。我尝试使用https://github.com/coolaj86/knuth-shuffle执行此操作。但是当我使用这段代码时,我得到一个"未捕获的ReferenceError:未定义图像"

(function () {
  'use strict';

  var images = [
    'dali.jpg',
    'illusionisme.png',
    'impresionisme.jpg',
    'popart.jpg',
    'abstracter.jpg',
    'abstrat.jpg',
    'concept.jpg',
    'fingerpaint.jpg',
    'flowers.jpg',
    'graffiti.jpg',
    'groovy.jpg',
    'skelly.jpg',
    'vangogh.jpg'
    ]
    , b
    ;

  // The shuffle modifies the original array
  // calling a.slice(0) creates a copy, which is assigned to b
  b = window.knuthShuffle(images.slice(0));
  console.log(b);
}());

我使用此代码从变量中提取随机图像。

$(".art").each(function(){
    $(this).prepend('<img src="assets/images/' + images[Math.floor(Math.random() * images.length)] + '">');
});

1 个答案:

答案 0 :(得分:1)

可能是images变量不在窗口对象中但在闭包中。作为快速修复(不推荐),尝试将images变量公开给窗口对象。

var images = [
    'dali.jpg',
    'illusionisme.png',
    'impresionisme.jpg',
    'popart.jpg',
    'abstracter.jpg',
    'abstrat.jpg',
    'concept.jpg',
    'fingerpaint.jpg',
    'flowers.jpg',
    'graffiti.jpg',
    'groovy.jpg',
    'skelly.jpg',
    'vangogh.jpg'
    ]
    , b
    ;
    window.images = images;