javascript - 用 JQuery 替换 img

标签 javascript jquery image

我是 Jquery 甚至 Javascript 的新手。找到并实现了这个脚本,它及时替换了图像。当我将图像包装在标签中时,脚本效果很好。我希望图像成为链接。一旦我将标签包装在标签中,脚本就会每隔几秒刷新一次,但不会加载下一张图像。

我应该在此脚本中更改什么才能正确加载下一个图像

<script type='text/javascript'>
    function swapImages(){
      var $active = $('#rooster .active');
      var $next = ($('#rooster .active').next().length > 0) ? $('#rooster .active').next() : $('#rooster img:first');
      $active.fadeOut(function(){
      $active.removeClass('active');
      $next.fadeIn().addClass('active');
      });
    }

    $(document).ready(function(){
      // Run our swapImages() function every 5secs
      setInterval('swapImages()', 5000);
    }); </script>

最佳答案

问题出在这里:

$('#rooster img:first')

它正在尝试找到第一个 <img>并淡入它,但由于它被包裹在标签中,所以效果不会很好,您需要更改那里的标签类型,如下所示

$('#rooster a:first')

总体而言,还有一些更多的更改,例如,您永远不应该将字符串传递给 setInterval()如果可以避免它,只需传递函数名称,如下所示:

setInterval(swapImages, 5000);

完成此操作后,您不必将该函数保留为全局函数,您可以在 document.ready 中对其进行整理。 ,总的来说你可以做这样的事情:

$(function(){
  function swapImages(){
    var $active = $('#rooster .active');
    var $next = $active.next().length > 0 ? $active.next() : $('#rooster a:first');
    $active.fadeOut(function(){
      $active.removeClass('active');
      $next.fadeIn().addClass('active');
    });
  }
  setInterval(swapImages, 5000);
});

关于javascript - 用 JQuery 替换 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3422231/

相关文章:

javascript - 使用动态 id jquery 获取类的值

image - bmp 和 jpg 文件结构有何区别?

javascript - 识别 HTML 上的表格

javascript - 将所有值从对象推送到数组?

javascript - 使用 ember 更新属性后如何滚动到向下

php - 如何在PHP中将图像从内存上传到AWS S3?

c++ - 在 C 或 C++ 中打开 jpeg 或 png 图像作为像素数据

javascript - 如何摆脱数字属性的自动排序?

javascript - 按钮 JSF 中的绝对 URL

jquery获取select的值