2014-07-12 100 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