javascript - 不连续只循环当前图像

标签 javascript jquery

我尝试使用 fadeIn 和 fadeOut 选项添加不同的图像。现在,该脚本不断循环。但是我想让它在结束最后一张图像并发出警报后停止循环。就是这样。 我不确定我该怎么做才能在循环结束时收到警报。

$('document').ready(function() {
    var $imgs = $('#slideshow > img'), current = 0;

    var nextImage = function() {
        if (current >= $imgs.length) current = 0;
        $imgs.eq(current++).fadeIn(function() {
            $(this).delay(3000).fadeOut(nextImage);
        })
    };
nextImage();
});

Fiddle

最佳答案

你需要更换:

if (current >= $imgs.length) current = 0;

与:

if (current >= $imgs.length) { 
    alert('end of images'); 
    return false; 
}

return false; 将立即退出该方法。

最终代码应该是这样的:

$('document').ready(function() {
    var $imgs = $('#slideshow > img'), current = 0;

    var nextImage = function() {
        if (current >= $imgs.length) {
            alert('End of images');
            return false;
        }
        $imgs.eq(current++).fadeIn(function() {
            $(this).delay(3000).fadeOut(nextImage);
        })
    };
    nextImage();
});

希望对您有所帮助。

关于javascript - 不连续只循环当前图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490032/

相关文章:

javascript - jQuery AJAX 文件上传卡住

javascript - 如果没有 setTimeout,ImagesLoaded 无法在 Firefox 中使用

javascript - 使用 jquery 改进每个悬停事件对 div 属性的搜索

javascript - 为复选框列表项列表设置焦点

javascript - jQuery DataTable PDF 导出表格单元格没有边框

javascript - d3 选择 .attr ('x1' ) 返回 r.getAttribute 不是函数

javascript - 如何在每次函数调用前等待 setTimeout?

jQuery:如何检测元素是否未被单击?

javascript - XML 的 documentElement.innerHTML 的等效项

jquery - 简单的jquery ajax请求语法错误