繁体   English   中英

Javascript:不修改滑块函数中的全局变量

[英]Javascript: not modifying global variables in slider function

我的网页上有一个滑块,我正在尝试使用全局变量基于当前幻灯片来操纵此计时。 我的问题是:我是否正确地操纵了全局变量(将其设置为10000或2000)和/或是否在正确的位置创建了全局变量。

一直感谢,洛克

<script>
    var timer = 4000;
    function slideShow() {
        var displayToggled = false;
        var current1 = $('.slide:visible');
        var nextSlide = current1.next('.slide');
        var hideoptions = {
            "direction": "left",
            "mode": "hide"
        };
        var showoptions = {
            "direction": "right",
            "mode": "show"
        };


        if (current1.is(':last-child')) {
            current1.effect("slide", hideoptions, 2000);
            $("#firstSlide").effect("slide", showoptions, 2000);
            timer = 10000;
        }
        else if (current1.is(':first-child')) {
            current1.effect("slide", hideoptions, 1000);
            nextSlide.effect("slide", showoptions, 1000);
            timer = 2000;
        }
        else {
            current1.effect("slide", hideoptions, 2000);
            nextSlide.effect("slide", showoptions, 2000);
            timer = 10000;
        }
    };

    setInterval(slideShow, timer);
    slideShow();
</script>

参考:原始幻灯片: 简单幻灯片jQuery / UI图像内联

现场示例: http//www.nerdherdgames.com

编辑:实时站点当前在索引页面上没有此特定的javascript

Number是javascript中的原始类型,它不是对象,对象是通过引用传递的,而number是通过值传递的。 因此,第一次调用后

setInterval(slideShow, timer);

无论您如何更改可变计时器,它都不会影响第一次设置的间隔。

setInterval(slideShow, timer); 只会设置一次,因此间隔将是timer的第一个值,或者您可以使用setTimeout以便每次函数结束时都设置计时器。 这意味着,不要在每张幻灯片上更改timer的值,而应在动画结尾处开始setTimeout

MDN上的setTimeout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM