【发布时间】:2021-02-08 14:27:34
【问题描述】:
我正在使用此代码在单击按钮时添加一个功能,但它不起作用。
function onClick(){
console.log("Button pressed.");
localStorage.counter = ++counter;
console.log(counter);
}
window.addEventListener('load', function() {
console.log("Loaded");
var buttons = document.getElementsByClassName("v-btn v-btn--small theme--dark orange");
console.log(buttons);
console.log("buttons.length:")
console.log(buttons.length);
var i;
for(i = 0;i < buttons.length;i++){
buttons[i].onclick = onClick();
console.log("Event added")
}
}, false);
当页面加载时,我只能在控制台中得到这个: Chrome Console output
当我点击按钮时也没有任何反应。如果我用 chrome 中的断点调试它,输出会改变,它会说按钮是空的。
编辑:问题是它甚至没有进入 for 循环。
EDIT2:调用加载事件时,按钮不会出现。 window.addEventListener('load') 执行得太早了
【问题讨论】:
-
HTML 是什么样的?按钮是否具有
getElementsByClassName中列出的类? -
它不会进入循环,因为
buttons.length为零。您可能在document.getElementsByClassName()中定位了错误的类名 -
@OzgurSar 看我贴的图,不是空的,里面有2个按钮
-
@Peca21 抱歉,我没有注意到图片中buttons.length 的部分已经显示为 0。您是否有任何脚本在页面初始加载后修改 DOM?
-
@OzgurSar 网站来自我的工作,所以我无法显示它,但是是的,页面加载后正在加载。