2014-07-12 137 views
0

我嘗試使用以下類型的回調函數:JQuery的回調函數不起作用

$('elem').attr(
'attr', 
function(i, val){ 
    return i*10 + 'px'; 
    } 
); 

放置在另一個上面的圖像之一。

我的HTML僅包含五張圖片。

CSS:

img { 
position: absolute; 
width: 100px; 
height: auto; 
} 

JQuery的:

$('img').attr(
'top', 
function(i, val){ 
    alert(50 + i*110 + 'px'); 
    return 50 + i*(110) + 'px'; 
    } 
); 

警報頁面:50px的... ... 160像素... 270px ... 380px 490px 但圖像仍然停留在一個地方。 你能在這裏找到錯誤嗎?

回答

2

你在做什麼是設置一個HTML屬性,而不是CSS屬性。你的圖像變成<img top=50px></img>,這對瀏覽器意味着什麼。使用jquery .css()函數來操作css:

$('img').css(
    'top', 
    function(i, val){ 
     return 50 + i*(110) + 'px'; 
    } 
); 

例如: http://jsfiddle.net/M6SZE/

+1

謝謝,它的工作! – rberla