为什么单击按钮时没有执行功能?

sir*_*omz -2 html javascript

出于某种原因,我无法通过单击按钮来执行我的功能.我主要在codeacademy.com上学习,不幸的是他们没有提供太多真实世界的应用程序.

这是我的代码:

<script>
    var ayee = function() {
        confirm("Ready to play?");
        var age = prompt("How old are you?");
        if (age >= 18) {
            document.write("Let's get started then!");
        }else{
            document.write("You're under 18? Be careful out there....");
        }
    }               
</script>
<button type="button" onclick="ayee" value="click" />
Run Code Online (Sandbox Code Playgroud)

非常感谢.

m59*_*m59 6

您需要使用调用该函数().像这样:ayee().

但是,您根本不应该使用inline-js.相反,你应该这样做:

现场演示(点击).

<button id="myButton">My Button</button>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var myButton = document.getElementById('myButton');
myButton.addEventListener('click', ayee);

function ayee() {
  //do something
}
Run Code Online (Sandbox Code Playgroud)

并且不要document.write在这里使用.你几乎不需要使用它,如果你这样做,请确保你真的这样做.

  • @MistressDavid:在生产代码中,您不应该使用内联事件处理程序,它违反了关注点分离的原则.你不应该将*content*与*应用程序逻辑*混合在一起.内联事件处理程序也存在一些非常令人困惑的行为,例如将祖先元素的属性添加到处理程序的范围.也就是说,只要尝试一下,就可以了(只要你知道这些怪癖). (3认同)