我需要随机化我正在使用 html/jquery 构建的小游戏的答案选择。
我在 2009 年 10 月遇到了 Russ Cam 在 Stack Overflow 上分享的 jQuery Randomize 插件 (请参见此处:Randomize a sequence of div elements with jQuery)。
这个插件作为一个解决方案非常有效......除了......
出于某种原因,它似乎不适用于 jQuery 1.3.1。 Firebug 在这一行抛出错误(“elems.sort 不是函数”):
elems.sort(function() { return (Math.round(Math.random())-0.5); });
现在,如果我在测试文件中包含 jQuery 1.3.2 而不是 1.3.1,它就会像魔法一样工作。
但是有一个问题。我正在为其构建游戏的网站被锁定为 jQuery 1.3.1。这是无法改变的。
所以,有两件事:
任何人都可以帮助我理解出了什么问题,或者为什么它不起作用? jQuery 1.3.1 中损坏或缺失了什么?我是 js/jquery 新手。
有人可以建议解决方法吗?编写该行的另一种方法可能适用于 1.3.1?
最佳答案
从 jQuery 1.3.2 开始,jQuery 代理原生 Array.prototype.sort
函数来处理 jQuery 对象。
在 jQuery 1.3.1 中,您无法直接对 jQuery 对象使用 sort
,但将 jQuery 对象转换为原生数组却很容易应用排序:
var elems = $this.children(childElem).get(); // notice the .get()
elems.sort(function() { return (Math.round(Math.random())-0.5); });
关于jquery - jQuery 1.3.1 中的 "elems.sort is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5293131/