3

我需要为我正在使用 html/jquery 构建的一个小游戏随机化答案选择。

2009 年 10 月,我在 Stack Overflow 上遇到了 Russ Cam 共享的 jQuery Randomize插件(请参阅此处:使用 jQuery 随机化 div 元素序列)。

这个插件作为一个很好的解决方案......除了......

由于某种原因,它似乎不适用于 jQuery 1.3.1。Firebug 在这一行抛出一个错误(“ elems.sort is not a function ”):

elems.sort(function() { return (Math.round(Math.random())-0.5); }); 

现在,如果我在我的测试文件中包含 jQuery 1.3.2 而不是 1.3.1,它就像魔术一样工作。

但问题来了。我正在为其构建游戏的站点被锁定在 jQuery 1.3.1 中。这是无法改变的。

所以,有两件事:

  1. 谁能帮我理解什么是错的,或者为什么它不起作用?在 jQuery 1.3.1 中损坏或丢失的是什么?我是 js/jquery 的新手。

  2. 任何人都可以提出解决方法吗?另一种编写可能在 1.3.1 中工作的行的方法?

4

1 回答 1

4

jQuery 1.3.2开始,jQuery 代理原生Array.prototype.sort函数来处理 jQuery 对象。

使用jQuery 1.3.1,您不能直接sort在 jQuery 对象上使用,但很容易将 jQuery 对象转换为原生数组以应用排序:

var elems = $this.children(childElem).get(); // notice the .get()
elems.sort(function() { return (Math.round(Math.random())-0.5); });
于 2011-03-13T23:13:32.547 回答