Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-滑块显示错误的图像_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery-滑块显示错误的图像

Javascript jQuery-滑块显示错误的图像,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的jQuery滑块的行为非常奇怪。隐藏第一个图像后,它会显示第二个图像,然后,当它应该加载第三个图像时,它只会再次显示第一个图像。我不知道我的代码出了什么问题。你对我有什么建议吗 jQuery代码: jQuery(document).ready(function($) { var counter = 1; function slider() { counter++; alert(counter); $('.hiddenSlider').hide(

我的jQuery滑块的行为非常奇怪。隐藏第一个图像后,它会显示第二个图像,然后,当它应该加载第三个图像时,它只会再次显示第一个图像。我不知道我的代码出了什么问题。你对我有什么建议吗

jQuery代码:

jQuery(document).ready(function($) {
    var counter = 1;
    function slider() {
    counter++;
    alert(counter);
        $('.hiddenSlider').hide(500, function() {
            $('#hs'+counter+'.hiddenSlider').show(500);
        });
    }
    setInterval(slider,5000);
});
HTML代码:

<div class="sliderWindow">
    <img class="hiddenSlider" id="hs1" src="<?php echo get_template_directory_uri(); ?>/images/slider/first.jpg" />
    <img class="hiddenSlider" id="hs2" src="<?php echo get_template_directory_uri(); ?>/images/slider/second.jpg" />
    <img class="hiddenSlider" id="hs3" src="<?php echo get_template_directory_uri(); ?>/images/slider/third.jpg" />
    <img class="hiddenSlider" id="hs4" src="<?php echo get_template_directory_uri(); ?>/images/slider/fourth.jpg" />
    <img class="hiddenSlider" id="hs5" src="<?php echo get_template_directory_uri(); ?>/images/slider/fifth.jpeg" />
</div>

我可以试着猜问题出在哪里。 如果没有排队,动画将异步运行。 您正在启动多个动画,这可能会发生冲突。 我改变了隐藏功能,只匹配可见的项目,它似乎运行良好

jQuery(document).ready(function () {
    var counter = 1;

    function slider() {       
        $('#hs' + counter + '.hiddenSlider').hide(500, function () {
             counter++;   
            $('#hs' + counter + '.hiddenSlider').show(500);
        });
    }
    setInterval(slider, 1000);
});
小提琴

具有队列功能的备选方案:

jQuery(document).ready(function () {
    var counter = 1;

    function slider() {       
        $('#hs' + counter + '.hiddenSlider').hide(500).queue(function () {
            counter = counter % 5 + 1;                   
            $('#hs' + counter + '.hiddenSlider').show(500);                 
            $.dequeue(this);               
        });
    }
    setInterval(slider, 1000);
});

您的浏览器控制台中有javascript错误?@MarioAraque没有,没有错误。警报(计数器值)中有任何问题吗?我不明白为什么您的代码在第三项中失败。我看到一个错误,因为当“计数器”的值大于5时,您没有将其设置为1(它不是id为hs6的img)。警报中没有问题。我知道没有限制,但它在达到第五元素之前就失败了。
jQuery(document).ready(function () {
    var counter = 1;

    function slider() {       
        $('#hs' + counter + '.hiddenSlider').hide(500).queue(function () {
            counter = counter % 5 + 1;                   
            $('#hs' + counter + '.hiddenSlider').show(500);                 
            $.dequeue(this);               
        });
    }
    setInterval(slider, 1000);
});