我试图让它在它需要的地方工作:删除当前类(当前数组值)并添加下一个类(下一个数组值)。
本质上就是这样。
    var myFunction= function (step) {
        if (lastEntered === step) {
            triggerEvent(step, "impress:stepleave");
            lastEntered = null;
 // Adding in an array of gradients 
var i;
var bg = new Aray();
bg[0] = "gradient-0";       
bg[1] = "gradient-1";       
bg[2] = "gradient-2";               
bg[3] = "gradient-3";       
bg[4] = "gradient-4";       
bg[5] = "gradient-5";                   
bg[6] = "gradient-6";       
bg[7] = "gradient-7";       
bg[8] = "gradient-8";                   
            for (i=0;i<bg.length;i++)
            {
            body.classList.add(bg[i]);
            }
        }
    };在放置body.classList.add("gradient-1");的地方,它只改变了颜色一次,而不影响脚本的其余部分。
谢谢!
发布于 2012-08-16 22:17:52
首先,定义数组的一个更好的做法是:
var bg = ["gradient-0", "gradient-1", "gradient-0", you get the idea...];你到底想做什么?
每次调用classNames时,代码都会将所有9个yourFunction添加到body中。
您可以使用classList的remove方法来删除className。
它是否取决于className主体应该拥有的步骤的值?
你可以这样做:
body.className = bg[step];这将移除身体的所有classNames,并给予它className bgstep;
或者,如果身体的classNames与bg中的不同,那么您可以这样做:
var i = 0, len = bg.length;
for ( ; i<len; i++) {
  if (i === step) { body.classList.add(bg[i]);
  } else {
    if (body.classList.contains(bg[i]) { body.classList.remove(bg[i]); }
  }
}希望我能提供帮助,但我不太确定步骤是什么,您的函数应该做什么;}
https://stackoverflow.com/questions/11996003
复制相似问题