jQuery .each()。hover()幻灯片

时间:2011-08-26 20:45:01

标签: jquery timer hover slideshow setinterval

所以我担心这是另一个混​​乱Stack的幻灯片问题,但我对jQuery和javascript很新,想要自己写一些东西而不是使用插件等。我需要什么是非常直接的东西:

包含类名为.slideshow的图像的几个框,因此:

<div class="box b1">
  <a href="#" title="Project Title" class="slideshow 2000">
    <img src="img/portfolio/1.jpg" alt="Portfolio Item">
    <img src="img/portfolio/2.jpg" alt="Portfolio Item">
  </a>
</div>

<div class="box b2">
  <a href="#" title="Project Title" class="slideshow 2000">
    <img src="img/portfolio/1.jpg" alt="Portfolio Item">
    <img src="img/portfolio/2.jpg" alt="Portfolio Item">
  </a>
</div>

每个人都快乐地绕着图像循环然后我将它悬停在它上面它暂停,然后它继续鼠标移动......很简单,对吧? ......

我的jQuery目前看起来像这样(我处于无冲突模式......因此jQuery):

jQuery(".slideshow").each(function(){
    var $this_s;
    var $that = jQuery(this);

    $that.find("img:gt(0)").hide(); //hide all images after first one

    function slide($this_s){
        $this_s.find(":first-child").hide().next('img').show()
        .end().appendTo($that);
    }
    var int = $that.attr("class");
    int = int.replace("slideshow ", "");

    interval = setInterval(slide($that), int);
    $that.hover(function(){
        interval = clearInterval(interval);
    },function(){
        interval = setInterval(slide($that), int);             
    });
});

目前它正在做一件特殊的事情,在MouseEnter上什么都不做,然后MouseLeave它会改变到下一个图像。我觉得我差不多了,我无法理解为什么setInterval没有做到这一点!

我没有从classname那个有趣的小获取间隔尝试过它,而是在一个数字内部但是仍然没有快乐。

任何帮助(再次)将非常感谢!

谢谢!

1 个答案:

答案 0 :(得分:0)

setInterval() 使用int值设置它的第二个参数(延迟),您可能需要在设置时考虑使用parseInt(int),如下所示:< / p>

int = int.replace("slideshow ","");
int = parseInt(int);

interval = setInterval(slide($that), parseInt(int));

希望这有帮助。