以下代码:不知道为什么不能正确的移动元素。
 if(parseInt(element.css("top").slice(0,-2)) > parseInt((4-2)*130)) 这个判断永远只对 posterList 下的第一个子元素有效。
其他元素均不起作用。使用firebug 能明显的看到 各个元素的 top的值都有改变
var obj = null;
obj = setInterval (function(){
$("#posterList").children().each(function(){
  element = $(this);
  element.animate({top:parseInt(element.css("top").slice(0,-2))+130},o.speed,function(){
        if(parseInt(element.css("top").slice(0,-2)) > parseInt((4-2)*130)){
            element.css({top:-130});//移动到顶端
        }
    });
});
},3000)对应操作的元素
<div id="posterList" style=" width:270px; height:390px; overflow:hidden; position:relative; z-index:10; ">
                <img src="biz/Img/slide/20120310184900422.jpg" title="ITSI" style="position:absolute; z-index:10; top:-130px; height:130px; width:270px;"/>
                <img src="biz/Img/slide/20120310184900134.jpg" title="ARM" style="position:absolute; z-index:10; top:0px; height:130px; width:270px;"/>
                <img src="biz/Img/slide/20120310184900956.jpg" title="Closed Loop" style="position:absolute; z-index:10; top:130px; height:130px; width:270px;"/>
                <img src="biz/Img/slide/20120310184900223.jpg" title="PMO In a box" style="position:absolute; z-index:10; top:260px; height:130px; width:270px;"/>
</div>

解决方案 »

  1.   

    郁闷
    把下面的element 全改为 $(this) 显示效果就正确了。element.animate({top:parseInt(element.css("top").slice(0,-2))+130},o.speed,function(){
      if(parseInt(element.css("top").slice(0,-2)) > parseInt((4-2)*130)){
      element.css({top:-130});//移动到顶端 
      

  2.   

    谁可以告诉我,这样写不能正确判断的原因?
    element = $(this);
      element.animate({top:parseInt(element.css("top").slice(0,-2))+130},o.speed,function(){
      if(parseInt(element.css("top").slice(0,-2)) > parseInt((4-2)*130)){
      element.css({top:-130});//移动到顶端 
      

  3.   

    element = $(this);
    element.animate我想应该是这2个element的原因。。你比较一下吧。。