javascript函数不会被调用

时间:2016-11-17 21:03:23

标签: javascript html this

以下html-webpage包含一个按钮。如果单击页面中包含的按钮,按钮的颜色应该变为红色(根据js代码)。但是,它不起作用,我不明白为什么它不起作用。 事实上,我周围没有人理解为什么它不起作用。如果有人知道发生了什么,请帮助我!

    <!DOCTYPE html>
    <html>
       <body>

            <h1>Please click the button below, it will turn red.</h1>

            <button type="button" onclick="myFunction(this)">Set background color</button>

            <script>
                function myFunction(element) {
                element.style.backgroundColor = "red";
                }
            </script>

        </body>
    </html>

更新:上面的代码有效,对不起。我在发布之前简化了原始代码。我的目标是将代码减少到必要部分。 您可以在下面找到原始代码。如果我按两次按钮,它应该变为绿色。但是,它保持红色。我不明白为什么。

<!DOCTYPE html>
    <html>
       <body>

        <h1>Please click the button below, it will turn red.</h1>

        <button type="button" onclick="setColor(this)">Set background   color</button>

        <script>
            lastField = null;
            function setColor(element) {
            if (element === lastField) {
                element.style.backgroundColor = "green";
            }

            element.style.backgroundColor = "red";

            lastField = element; 
            }
        </script>

    </body>
</html>

1 个答案:

答案 0 :(得分:3)

第一次单击它时,lastField为空,因此背景设置为红色,lastField设置为元素。

第二次单击它时,lastField是元素,因此背景设置为绿色...然后背景立即设置为红色,lastField设置为元素。

第三次和后续次数与第二次相同。

你需要else