2011-09-09 76 views
1

我得到了這個隨機位置腳本。但它只適用於第一張圖片......我做錯了什麼?jquery每個interation問題

var randnumsX = [1,2,3,4,5,6,7,8]; 
var randnumsY = [1,2,3,4,5,6]; 

$('#obra img').each(function(i,el) { 

    m = Math.floor(Math.random()*randnumsX.length); 
    randnumsX = randnumsX.splice(m,1); 
    posx = Math.floor(m * 50); 

    n = Math.floor(Math.random()*randnumsY.length); 
    randnumsY = randnumsY.splice(n,1); 
    posy = Math.floor(n * 50); 

    $(el).css({position:'absolute', left: posx + 155, top: posy});  
    $(el).fadeIn('slow'); 

}); 
+2

你的標記是什麼樣的?所有的圖像在一個單獨的div與id =「div」? – Timbo

+0

如果你調試...它甚至循環?我的意思是,有多少圖像是由$('div img')檢索的集合? –

+0

固定代碼,但仍無法使用。標記是正確的。我有一個div(#obra)裏面有5張圖片。我想隨機化這些頭寸,而不必重複之前的頭寸。 – homemrobo

回答

1

splice返回已移除的元素而非已移除元素的數組。

+1

替換'randnumsX = randnumsX.splice(m,1);'用'randnumsX.splice(m,1);'會做伎倆。還要注意,類似命名的'slice()'方法不會像'splice()'那樣修改數組 - 監視輸入錯誤。 – Blazemonger

+0

就是這樣mblase75!謝謝! – homemrobo

+0

x = randnumsX.splice(m,1); posx = Math.floor(x * 50); – jbrond

0

如果您正在訪問的股利,那麼你就不需要#號

$('div img').each(function(i,el) { 

m = Math.floor(Math.random()*randnumsX.length); 
randnumsX = randnumsX.splice(m,1); 
posx = Math.floor(m * 50); 

n = Math.floor(Math.random()*randnumsY.length); 
randnumsY = randnumsY.splice(n,1); 
posy = Math.floor(n * 50); 

$(el).css({position:'absolute', left: posx + 155, top: posy});  
$(el).fadeIn('slow'); 

});

+0

嗨Meenakshi,固定在原帖。 – homemrobo