此腳本在firefox,IE和chrome中可用,但不適用於safari。有任何想法嗎?簡單的jquery腳本不能在safari中工作
真正奇怪的是,當我把一個alert()
在.get()
回調結束,則執行(即使是在野生動物園)。所以代碼不會崩潰,它只是不修改DOM。
<html>
<head>
<title>Title for this webpage</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<!- CSS styling -------------------------------------------------------------->
<style type="text/css"/>
body{
margin:0px;
padding:0px;
font-family:verdana, arial, helvetica, sans-serif;
font-size:14px;
text-align:left;
width:900px;
margin-left:auto;
margin-right:auto;
position:relative;
background-color:#fff;
}
#mainBox{
width:700px;
margin:30px;
border:2px solid #ddd;
margin-left:auto;
margin-right:auto;
}
#mainHeader, #mainFooter, #mainContent{
margin: 5px;
padding:10px;
border: 2px dashed #ddd;
text-align:center;
}
.shuffleMe{
margin: 5px;
padding:10px;
border: 2px solid #ddd;
text-align:left;
}
</style>
<!- Jquery/javascript -------------------------------------------------------->
<script type="text/javascript">
//Code modified from: http://stackoverflow.com/questions/1134976/how-may-i-sort-a-list-alphabetically-using-jquery
$(document).ready(function(){
var my_list = $('.shuffleMe').get();
my_list.sort(function(){return(Math.random() >.5);});
$.each(my_list, function(index, item) { $('#mainContent').append(item); });
});
</script>
</head>
<!- HTML body content -------------------------------------------------------->
<body>
<div id="mainBox">
<div id="mainHeader"> --- HEADER --- </div>
<div id="mainContent">
<div class="shuffleMe">AAA</div>
<div class="shuffleMe">BBB</div>
<div class="shuffleMe">CCC</div>
<div class="shuffleMe">DDD</div>
</div>
<div id="mainFooter"> --- FOOTER --- </div>
</div>
</body>
</html>
您是否嘗試過使用另一個版本的jQuery來查看它是否是該版本中的錯誤?另外,我已經看到很多有關Math.random()在safari上報告的問題,也許有問題 – Einacio
它正在修改DOM,但排序順序沒有改變。如果您調整'$ .each()'語句中每個項目的HTML,就會看到它正在更新。我試圖弄清楚爲什麼'sort()'方法不起作用。 –
hm。好的建議。我剛剛嘗試了幾個不同版本的jquery - 沒有改變。另外,我插入了一行:alert(Math.random());每個重新加載給我一個不同的隨機數字,所以我不認爲這是問題... – Abe