-3

如何触发此功能:

<script>
        function change(x) {
    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";}
}

function changeReset() {
    var target = document.getElementById("target");
    target.className = "chart";
}
</script>

仅在按下此按钮时发生?

<div class='nfooter' style="position:float;"><a id="c_question" href="#"><img src="../name_footer/_name.png" /></a></div>
4

2 回答 2

1

添加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 声明被认为是不好的做法。因此,请考虑在脚本中进行点击绑定。

于 2013-09-18T19:50:27.747 回答
1

在函数定义和函数调用中添加另一个参数对象使用'this'并通过id检查函数定义,object.id是你的愿望。希望你得到逻辑。

于 2013-09-18T19:55:29.270 回答