Javascript 函数立即调用

Javascript function immediately invoking

我有两个js文件。第一个 (alert.js)

function test() {
    var name= document.getElementById("name").value; 
    alert(name);
};

和第二个 (main.js)

document.getElementById("question_button").addEventListener("click", test());

在html我长得像

<body>
    ...
    <script type="text/javascript" src="js/alert.js"></script>
    <script type="text/javascript" src="js/main.js"></script>
</body>

加载页面时调用功能测试。这不是我需要的。这可能很简单,但我不明白。如何使函数 "test" 仅在按下按钮时调用?

您正在调用 test() 并将它的值 returns ( undefined ) 传递给 addEventListener。只需将 test 作为参数直接传递而不是调用它:

document.getElementById("question_button").addEventListener("click", test);

或者传入一个匿名函数:

document.getElementById("question_button").addEventListener("click", function ( ) { test(x) } );