Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:check.addEventListener不是函数_Javascript_Html_Css - Fatal编程技术网

Javascript 未捕获类型错误:check.addEventListener不是函数

Javascript 未捕获类型错误:check.addEventListener不是函数,javascript,html,css,Javascript,Html,Css,它显示了“未捕获的TypeError:check.addEventListener不是函数”问题。我试图做的是,当我点击其中一个视频时,类将被添加,视频宽度将增加,如果我点击另一个视频,类将自动从第一次点击的视频中删除,并在最近点击的视频中添加类。请任何机构帮助检查是否有任何css属性问题,并帮助ans解决我的问题 这是我的Html文件 测试视频 录像带{ 宽度:300px; 过渡:.5s; } 维德先生{ 宽度:500px; 过渡:.5s; } $(文档).ready(函数(){ $('.v

它显示了“未捕获的TypeError:check.addEventListener不是函数”问题。我试图做的是,当我点击其中一个视频时,类将被添加,视频宽度将增加,如果我点击另一个视频,类将自动从第一次点击的视频中删除,并在最近点击的视频中添加类。请任何机构帮助检查是否有任何css属性问题,并帮助ans解决我的问题

这是我的Html文件

测试视频
录像带{
宽度:300px;
过渡:.5s;
}
维德先生{
宽度:500px;
过渡:.5s;
}
$(文档).ready(函数(){
$('.videoElementID').bind('contextmenu',function(){return false;});
});
这是我的test.js或javascript文件
var check=document.querySelectorAll(“视频”);
check.addEventListener(“单击”,cheesy());
函数cheesy(){
对于(变量i=0;i
您应该循环每个视频元素并添加单击事件侦听器

var check = document.querySelectorAll("video");   
for (var i = 0; i < check.length; i++) {
    check[i].addEventListener("click",cheesy);
}

function cheesy() {

    for (var i = 0; i < check.length; i++) {
        check[i].classList.remove("vid");
    }
    check.className += 'vid';
};
var check=document.querySelectorAll(“视频”);
对于(变量i=0;i
querySelectorAll返回节点列表(节点数组)。检查一下

可能需要将事件侦听器添加到每个节点

var checks = document.querySelectorAll("video"); 

Array.prototype.forEach.call(checks, function(item) {
   item.addEventListener("click",cheesy);
});

在您的示例中,您正在通过执行函数
chessy()
传递一个值。您需要做的是将引用传递给处理程序函数,如下所示


check.addEventListener(“点击”,奶酪)
querySelectorAll()返回一个数组。因此,您需要迭代数组以添加这些事件侦听器。*事实上,他是一位诺贝尔奖得主。查看从数组的原型对象访问forEach与从NodeListPrototype访问继承的forEach方法相比有什么好处?并非恶意,只是好奇?@senojoeht并非所有浏览器都在NodeList中实现forEach。我记得IE 10没有。这可以在这里看到:因此开发人员可以使用polyfill或数组的原型forEach。我知道,现在如果项目/开发人员只支持最新的浏览器,就没有必要这样做。但由于可追溯性,多年来我一直用这种方式写作。。。
var check = document.querySelectorAll("video");   
for (var i = 0; i < check.length; i++) {
    check[i].addEventListener("click",cheesy);
}

function cheesy() {

    for (var i = 0; i < check.length; i++) {
        check[i].classList.remove("vid");
    }
    check.className += 'vid';
};
var checks = document.querySelectorAll("video"); 

Array.prototype.forEach.call(checks, function(item) {
   item.addEventListener("click",cheesy);
});