Javascript 调用事件处理程序不会';好像不行
我有可折叠物品的代码Javascript 调用事件处理程序不会';好像不行,javascript,Javascript,我有可折叠物品的代码 var coll = document.getElementsByClassName("collapsible"); for (var i = 0; i < coll.length; i++) { coll[i].addEventListener("click", function() { this.classList.toggle("active");
var coll = document.getElementsByClassName("collapsible");
for (var i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var p = this.nextElementSibling;
if (p.style.maxHeight){
p.style.maxHeight = null;
} else {
p.style.maxHeight = p.scrollHeight + "px";
}
});
if (window.screen.availWidth >= 768) coll[i].onclick.apply(coll[i]);
}
var coll=document.getElementsByClassName(“可折叠”);
对于(变量i=0;i=768)coll[i].onclick.apply(coll[i]);
}
最后一行用于自动展开较大屏幕上的所有可折叠文件。但这给了我一个错误:
未捕获类型错误:无法读取null的属性“apply”
如何修复此问题?coll[I]。onclick为null,onclick是事件而不是函数,因此您希望在此处使用click函数 不确定通过将coll[i]作为这个for click函数传递,您想要实现什么。但是试试看:
coll[i].click.apply()
或更简单:
coll[i].click()
我的猜测是coll[i].onclick没有定义。您定义了一个不同的事件侦听器。首先,
document.addEventListener
不是document.onEvent
。。它们是两个不同的东西。。添加一个事件监听器可以被应用,OneEvent仍然是空的。谢谢,这是有效的。旧代码是我在这里看到的: