美好的一天,我有一个可以在页面上的单选按钮上运行的随机播放脚本,它使用Jquery,我的问题是在我包含jquery之后,脚本跟随它的调用,我得到一个错误(来自Google Chrome开发者控制台)
Uncaught TypeError: $(...).shuffle is not a function
我已经尝试过这个问题,但是我被困住了。这是我的代码
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
(function($){
$.fn.shuffle = function() {
var allElems = this.get(),
getRandom = function(max) {
return Math.floor(Math.random() * max);
},
shuffled = $.map(allElems, function(){
var random = getRandom(allElems.length),
randEl = $(allElems[random]).clone(true)[0];
allElems.splice(random, 1);
return randEl;
});
this.each(function(i){
$(this).replaceWith($(shuffled[i]));
});
return $(shuffled);
};
})(jQuery);
</script>
脚本/函数的调用
<script>
$(document).ready(function(){
$('.questions label').shuffle();
});
</script>
HTML
<div class="questions">
<label>
<input type="radio" name="choices" value="Hello">Hello
</label>
<br>
<label>
<input type="radio" name="choices" value="Hello">Hello1<br>
</label>
<label>
<input type="radio" name="choices" value="Hello">Hello2
</label>
<label>
<input type="radio" name="choices" value="Hello">Hello3
</label>
</div>
答案 0 :(得分:0)
<script type="text/javascript">
jQuery(function($){
var choices = $("#choices");
choices.html(
choices.find("label").sort(function(){
return Math.round(Math.random())-0.5;
})
);
});
</script>