【发布时间】:2013-07-27 08:25:57
【问题描述】:
我添加了 4 个“范围”类型输入,并使用它们的值来设置另一个元素的 RGBA 值,但它不起作用。
window.onload = init;
function init(){
document.getElementById("colorR").onchange() = setColors;
document.getElementById("colorG").onchange() = setColors;
document.getElementById("colorB").onchange() = setColors;
document.getElementById("Opacity").onchange() = setColors;
}
function setColors(){
var r = document.getElementById("colorR").value;
var g = document.getElementById("colorG").value;
var b = document.getElementById("colorB").value;
var a = document.getElementById("Opacity").value;
//alert(r+", "+g+", "+b+", "+a);
document.getElementsByClassName("previewAreaBox")[0].style.setAttribute(
"background-color", "rgba(",r+", "+g+", "+b+", "+a/100+");");
}
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
打开浏览器的开发者控制台,你会看到错误。这应该是您在出现问题时首先查看的位置。
-
当您调用
document.getElementById("...").onchange() = setColors时,您正在执行任何附加的函数。去掉括号,看起来像这样:document.getElementById("...").onchange = setColors。这样你就可以设置变量,新值(一个函数)将在以后被调用。 -
感谢 Crazy Train 和 smakateer
-
mtd +1 给您,因为当大多数新用户接受答案并消失时,您表示感谢。欢迎使用 Stack Overflow!
-
感谢你的好意,亲爱的约瑟夫
标签: javascript styles getelementsbyclassname