我使用Java的查詢生成頁面加載一個棋盤:函數調用順序
基本上我有一個空的身體:
<body>
</body>
然後我有以下的javascript鏈接:
var addsquareblack=function(i,row){$(document).ready(function(){
var square=$('<div class="square"></div>');
if ((i%2)===0)
{square.css('background-color','brown');}
$('.row').last().append(square);
});};
var addsquarewhite=function(i,row){$(document).ready(function(){
var square=$('<div class="square"></div>');
if ((i%2)===0)
{square.css('background-color','white');}
else
{square.css('background-color','brown');}
$('.row').last().append(square);
});};
var create=function(a){$(document).ready(function(){
var row=$('<div class="row"></div>');
$('body').append(row);
if ((a%2)===0)
{for(var i=1;i<9;i++){addsquareblack(i,row);}}
else
{for(var i=1;i<9;i++){addsquarewhite(i,row);}}
});};
var addrows=function(){
for(var i=1;i<9;i++){create(i);}
};
然後我在腳本中調用頭:
<script> addrows() </script>
然而,addsquarewhite
和addsquare
黑不正常:我div
s的row
類被添加到body
正確,但隨後,我加入的平方越來越編成的最後div
。我認爲他們只會被添加到方法調用時可用的最後一個div
。很明顯,我不明白JavaScript中的範圍/流量。請指教。
謝謝!
第一眼看上去,你是如何使用的document.ready是錯誤的,它應該像http://jsfiddle.net/arunpjohny/ axsvL/1/ –
我強烈建議你在css(或者sizzle)中使用':odd'和':even'僞類,追加64個div並使用style來爲每個'-nth(8n)'元素創建一個新行 – fcalderan
阿倫:是的,它修復了它。在每個單獨的函數中使用document.ready會產生問題。 – kempchee