我正在尝试获取按钮列表,并在domloaded上为其添加事件监听器

     window.addEventListener('DOMContentLoaded', function() {
        var calKeys = document.getElementById("filters").querySelectorAll("a.Button");
        registerKeys(calKeys);
        var registerKeys = function(inputs){
             for(var i=0;i<inputs.length;i++) {
                    inputs[i].addEventListener("click", handleCalcKey, false);
            }
        };
        var handleCalcKey = function(){
             alert( "thi sis a test");
        }
     });


所以我的registerKeys方法基本上接受了输入并添加了处理程序。但是它失败,因为未定义的未捕获类型错误不是一个函数

不知道发生了什么...。

最佳答案

那里 :

registerKeys(calKeys);
var registerKeys = function(inputs){


您在定义函数之前先调用函数。悬挂变量声明,而不是赋值。

您可以这样做:

registerKeys(calKeys);
function registerKeys(inputs){


但通常不太可读。除非有充分的理由(这里似乎没有一个理由),否则在使用值之前先给出值会更加清楚。

09-30 13:37