基本事件侦听器抛出错误('undefined不是函数')

时间:2014-10-24 15:20:28

标签: javascript function events

尝试向类添加事件侦听器时遇到了问题。

基本上我希望它能够在类' col'的时候执行一些JS代码。点击

document.getElementByClassName("col").addEventListener("click", randomOutput);

function randomOutput(){
    alert("Test");
}

它实际上不执行randomOutput函数而是抛出错误。 ' undefined不是函数'。

2 个答案:

答案 0 :(得分:2)

您正在尝试将addEventListener()链接到document.getElementByClassName("col");的结果。 document.getElementByClassName无效,应为document.getElementsByClassName

(function () {
   var randomOutput = function {
       alert("Test");
   }

   var els = document.getElementsByClassName("col");

   for (var i = 0; i < els.length; i++) {
      els[i].addEventListener("click", randomOutput);
   }
})();

答案 1 :(得分:0)

除了您需要在将函数randomOutput分配给侦听器之前定义它。

我也看到getElementByClassName不是函数,应该是getElementsByClassName

最后,您只能向一个元素添加事件侦听器。因此,您必须使用document.getElementsByClassName("col")[0].addEventListener("click", randomOutput);或编写一些代码来遍历每个元素并添加侦听器。