我的网页上有一个滑块,我试图使用全局变量根据当前幻灯片操作此时间。我的问题是:我是否正确操作全局变量(将其设置为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>
的引用: 原始幻灯片显示:Simple Slideshow jQuery/UI images inline
实时网站示例:http://www.nerdherdgames.com
修改:实际网站目前在索引页面上没有此特定的javascript
答案 0 :(得分:0)
Number是javascript中的原始类型,它不是对象,对象是通过引用传递的,但是数字是按值传递的。所以在你第一次调用
之后setInterval(slideShow, timer);
无论您如何更改变量计时器,都不会影响第一次设置的间隔。
答案 1 :(得分:0)
setInterval(slideShow, timer);
将只设置一次,因此间隔将是timer
中的第一个值,或者您可以使用setTimeout
,因此您将在每次函数结束时设置计时器。这意味着,您不应在每张幻灯片上更改timer
的值,而应在动画结束时开始setTimeout
。