使用Javascript变量而不调用其中的函数

使用Javascript变量而不调用其中的函数,javascript,Javascript,我目前正在开发一个小幻灯片,可以自动在背景图像中淡入淡出。不透明度以及。 我的问题是,我试图使用变量来存储要运行的代码,因为setTimeout很顽固,并且不会在括号中运行任何东西。我也需要使用它们,否则我的代码会变得非常混乱 我现在拥有的是 imgID=0; //window.setIntervalnextSLIDE,1000; nextSLIDE; 函数nextSLIDE步骤2{ slideVAR=slide+imgID; window.setTimeoutimgIDchange,50;

我目前正在开发一个小幻灯片,可以自动在背景图像中淡入淡出。不透明度以及。 我的问题是,我试图使用变量来存储要运行的代码,因为setTimeout很顽固,并且不会在括号中运行任何东西。我也需要使用它们,否则我的代码会变得非常混乱 我现在拥有的是

imgID=0; //window.setIntervalnextSLIDE,1000; nextSLIDE; 函数nextSLIDE步骤2{ slideVAR=slide+imgID; window.setTimeoutimgIDchange,50; test2=window.setTimeOutChangeOpacityLine; tes5t=window.setTimeOutChangeOpacity 8100;//如果您想知道非理性名称,那是因为我之前将它们都设置为非唯一的,而我变得懒惰,所以我将它们设置为唯一的。。 test4=window.setTimeOutChangeOpacity 7200; test6=window.setTimeOutChangeOpacity 6300; tes6t=window.setTimeOutChangeOpacity 5400; twest=window.setTimeOutChangeOpacity 4500; testt=window.setTimeOutChangeOpacity 3600; testyt=window.setTimeoutChangeOpacity2700; teswt=window.setTimeOutChangeOpacity 1800; } 功能改变{ imgID=imgID+1; } 函数变化不透明度{ document.getElementByIdheaderIMG.style.opacity=不透明度; } var ChangeOpacityIne=changeOpacity0.9; var ChangeOpacity 8=ChangeOpacity 0.8; var ChangeOpacity 7=ChangeOpacity 0.7; var ChangeOpacity 6=ChangeOpacity 0.6; var ChangeOpacity 5=ChangeOpacity 0.5; var ChangeOpacity 4=ChangeOpacity 0.4; var ChangeOpacity 3=ChangeOpacity 0.3; var changeOpacity2=changeOpacity0.2; var ChangeOpacity 1=ChangeOpacity 0.1;
var FULL=changeOpacity1如果我理解正确,您希望使用函数调用并向其传递参数吗

如果是这样,您可以简单地将参数添加到setTimeout调用的末尾。如果你想打电话

不透明度0.5; 1000毫秒后,您将使用如下设置超时:

setTimeoutchangeOpacity,1000,0.5;
使用setTimeout时,参数如下所示:

setTimeout(callback,delay,args);
因此,您可以简单地执行以下操作:

setTimeout(changeOpacity,*DELAY*,0.7); // etc...

所以你真正要问的是如何用setTimeout调用函数并将参数传递给该函数,对吗?你在寻找闭包。看一看,如果你总体上相当懒惰,你应该重做你的代码并使用循环,而不是重复所有事情:-明确地将转换外包在不透明中,而不是重复代码100次。我仍在试图弄清楚你为什么要使用javascript来实现这一点。。您可以使用纯CSS转换背景图像,您知道吗?出于某种原因,将参数作为第三个参数传递给setTimeout回调不是很可靠。我经常看到它不起作用,但就是不明白为什么。像setTimeoutchangeOpacity这样做可能更安全@Tobiq几乎是IE9和以下版本的例外,IE9和以下版本的浏览器支持setTimeout的额外参数。我认为*一些*浏览器只接受一个参数–Tobiq