添加onclick="change()"
到元素。
编辑:
function change(x) {
if(x=="something"){
var target = document.getElementById("target");
if (y == "imgA") {target.className = "cast1";}
else if (y == "imgB") {target.className = "cast2";}
else if (y == "imgC") {target.className = "cast3";}
else if (y == "imgD") {target.className = "cast4";}
else {target.className = "chart";}
}
}
或者,如果您的意思是只允许函数在被特定元素调用时执行,您可以检查该元素。引用将this
引用拥有该函数的元素。
function change(x) {
if(this.id == "target")
var target = document.getElementById("target");
if (y == "imgA") {target.className = "cast1";}
else if (y == "imgB") {target.className = "cast2";}
else if (y == "imgC") {target.className = "cast3";}
else if (y == "imgD") {target.className = "cast4";}
else {target.className = "chart";}
}
}
编辑2:
通常你会使用绑定,element.onclick
但是当使用内联声明时,this
引用是指窗口。
详细信息在这里http://www.quirksmode.org/js/this.html
在不过多更改代码的情况下,您可以按照以下建议稍微更改您的功能。
function change(element,x) {
if(element.id=="target"){
var target = document.getElementById("target");
if (y == "imgA") {target.className = "cast1";}
else if (y == "imgB") {target.className = "cast2";}
else if (y == "imgC") {target.className = "cast3";}
else if (y == "imgD") {target.className = "cast4";}
else {target.className = "chart";}
}
}
然后更改您的内联 onclick 以传递对元素的引用。onclick="change(this,'target')"
通常,使用内联 onclick 声明被认为是不好的做法。因此,请考虑在脚本中进行点击绑定。