2011-11-16 44 views
-1

這是我的代碼。爲什麼.each()迭代只能在最後一個元素上工作?

$(function(){ 
$(".stars").each(function(){starMap($(this))}); 
}); 
function starMap(elem) 
{ 
var p=elem.attr("rel"); 
var t=-(5-p)*30; 
elem.css("background-position","0 "+t); 
} 

見的jsfiddle在這裏http://jsfiddle.net/bEVn9/3

+1

您的問題描述是有缺陷的,因爲你已經躍上了一個結論沒有證明它,或分析它不夠徹底。事實上,迭代必須正常工作,所以別的東西(不是你所設想的)會引起你看到的任何症狀(你沒有描述過)。描述_symptoms_(vs特徵預期行爲),而不是_predictions_(除非你已經證明他們已經)。 –

+0

看着你的jsFiddle帖子,我不知道它在做什麼或你想做什麼。你甚至沒有在其中設置jQuery。 –

回答

2

實際上它運行直通的所有元素。使你的CSS它的像素值:

elem.css("background-position","0px "+t+"px"); 

http://jsfiddle.net/bEVn9/2/

+0

謝謝,不能相信這就是原因。 ;) – LotusH

+1

'0'確定。只是非零價值需求單位。 –

0

它是通過每個元素的循環正常了,但您.css()調用不正確地設置背景位置。

this修正小提琴。

0

試試這個:

elem.css("background-position","0 "+ t + "px"); 

注意添加PX

相關問題