jQuery 1.5.2 を使用して、div の子にランダムな位置を与えています。コードは Firefox、Chrome、Opera で動作しますが、IE7-9 と Safari では動作しません。なにが問題ですか?
2 番目の質問です。ページが複数回再表示された場合、ランダム パターンはあまりランダムではなく、同じ数字が 1 位にとどまることがあります。スクリプトのランダム性を高めるためのヒントはありますか?
PD: jquery フィドルは 1.6.4 です
スクリプト
jQuery(document).ready(function() {
jQuery('#postscript-top-inner').each(function(){
var parent = jQuery(this);
var content = parent.find('.block-nodeblock');
content.sort(function(a){
var new_position = parseInt( Math.random()*4 );
return( new_position );
})
.appendTo(parent);
});
});
HTML
<div id="postscript-top-inner">
<div class="block-nodeblock">
1
</div>
<div class="block-nodeblock">
2
</div>
<div class="block-nodeblock">
3
</div>
<div class="block-nodeblock">
4
</div>
<div class="block-nodeblock">
5
</div>
<div class="block-nodeblock">
6
</div>
<div class="block-nodeblock">
7
</div>
<div class="block-nodeblock">
8
</div>
<div class="block-nodeblock">
9
</div>
<div class="block-nodeblock">
10
</div>
<div class="block-nodeblock">
11
</div>
<div class="block-nodeblock">
12
</div>
<div class="block-nodeblock">
13
</div>
<div class="block-nodeblock">
14
</div>
<div class="block-nodeblock">
15
</div>
<div class="block-nodeblock">
16
</div>
</div>
CSS
#postscript-top-inner{width: 460px; margin:0 auto}
.block-nodeblock{width:50px; padding:25px 0; background: gray; margin:0 10px 10px 0; text-align:center; float: left}