Javascript 为什么我不能将事件侦听器分配给按钮?

Javascript 为什么我不能将事件侦听器分配给按钮?,javascript,dom-events,addeventlistener,event-listener,Javascript,Dom Events,Addeventlistener,Event Listener,下面是向我的html中的所有按钮元素添加事件侦听器的代码。结果–没有注册的事件侦听器,也没有错误 window.onload = function(){ addEvListeners(); // This function is to assign ELs to buttons in my HTML function addEvListeners(){ var target = document.getElementsByTagName("button")

下面是向我的html中的所有按钮元素添加事件侦听器的代码。结果–没有注册的事件侦听器,也没有错误

window.onload = function(){
    addEvListeners();
    // This function is to assign ELs to buttons in my HTML
    function addEvListeners(){
        var target = document.getElementsByTagName("button");
        for (i = 0; i <= target.length - 1; i ++){
            target[i].addEventListener("click", function(){model();},false);
        }
    }
    function model(){
        return true; // just for placeholder
    }
}

这对我有用。我最后在控制台里得到了一个溜溜球。您的按钮元素是否可能在onload时不存在?

您如何知道它不工作?调用的函数只返回true。没有记录任何内容。顺便说一句,我不确定什么是“不工作”,但我看到的一件事是,你应该删除for循环中i++之间的空格。你怎么知道,它只返回true?你的代码在这里工作得非常好->我猜按钮不在那里。
<html>
    <head>
        <script>
            window.onload = function(){
                addEvListeners();
                // This function is to assign ELs to buttons in my HTML
                function addEvListeners(){
                    var target = document.getElementsByTagName("button");
                    for (i = 0; i <= target.length - 1; i ++){
                        target[i].addEventListener("click", function(){model();},false);
                    }
                }
                function model(){
                    console.log('yo!');
                }
            }
        </script>
    </head>
    <body>
        <button>Click Me</button>
    </body>
</html>