javascript - 为什么这个函数不无限循环呢?

标签 javascript jquery html web

我对 jQuery 很陌生,已经为幻灯片开发了这段代码。但似乎这段代码无助于无限循环。它运行一次然后停止。谁能详细说明一下原因吗?

$(document).ready(function(){
    //Initialization
    var slideCount = $('#slideshow').children().length;
    var currentID = 1;
    $('.slides').css('display','none');
    $('#slide' + currentID).fadeIn(1000);
    //Processing
    setInterval(function(){
        var nextID = currentID + 1;
        $('#slide' + currentID).fadeOut(1000);
        $('#slide' + nextID).fadeIn(1000);
        currentID = nextID;
        if(currentID == slideCount)
        {
            currentID = 1;
        }
    },2000);
});


幻灯片的 HTML 布局如下:

    <div id="slideshow">
        <img src="../../resources/images/image1.jpg" id="slide1" class="slides" />
        <img src="../../resources/images/image2.jpg" id="slide2" class="slides" />
        <img src="../../resources/images/image3.jpg" id="slide3" class="slides" />
        <img src="../../resources/images/image4.jpg" id="slide4" class="slides" />
    </div>

最佳答案

你的代码确实会永远循环。然而你可能想改变

var nextID = currentID + 1;
// nextID becomes 5, which doesn't exists
$('#slide' + currentID).fadeOut(1000);
$('#slide' + nextID).fadeIn(1000);
currentID = nextID;
if(currentID == slideCount)
{
    currentID = 1;
}

进入

var nextID = currentID + 1;
if (nextID > slideCount) 
{
    nextID = 1;
}
$('#slide' + currentID).fadeOut(1000);
$('#slide' + nextID).fadeIn(1000);
currentID = nextID;

参见 jsFiddle: http://jsfiddle.net/LjTXZ/

关于javascript - 为什么这个函数不无限循环呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19753289/

相关文章:

javascript - DateRangeSlider 获取用户选择的值

javascript - evt.ctrlKey 在 jquery keyup 事件中返回 false

html - DIV 应在溢出 :hidden parent 内并排保持

python - 为什么 find_all 会报错,即使 just find 没有报错? ( python 美汤)

javascript - react : get value from a select field in a DOM node

javascript - AngularJs + Pubnub 数据绑定(bind)

javascript - 选中单选按钮之一时启用表单字段,取消选中时禁用字段

jQuery 悬停下拉菜单不起作用

javascript - 当我更改输入时,如何在 HTML 表单上自动显示 JavaScript 函数的结果?

javascript - 函数 wp_enqueue_script 允许重复