Javascript 未捕获引用错误:未定义Activetab

Javascript 未捕获引用错误:未定义Activetab,javascript,Javascript,我有这个剧本: (function Activetab () { var tabs = document.getElementsByClassName('tab'); for (i = 0; i < tabs.length; i++) { tabs[i].addEventListener('click', function (e) { removeActive(); e.target.classList.ad

我有这个剧本:

(function Activetab () {
    var tabs = document.getElementsByClassName('tab');

    for (i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function (e) {
            removeActive();
            e.target.classList.add('active');
         })
    }
})();

function removeActive() {
    var tabs = document.getElementsByClassName('tab');
    for (i = 0; i < tabs.length; i++) {
        tabs[i].classList.remove('active')
    }
}
window.onload = Activetab();
window.onload = removeActive();
(函数Activetab(){
var tabs=document.getElementsByClassName('tab');
对于(i=0;i
由于某种原因,当我尝试使用
window.onload=Activetab()时
返回

未捕获引用错误:未定义Activetab


怎么了?为什么window.onload函数无法侦听Activetab函数

如果您正在立即调用函数
Activetab
,则需要阅读有关(立即调用函数表达式)的更多信息。

我不知道您为什么要立即执行该函数,但这可能是您正在寻找的方法:

function Activetab () {
    var tabs = document.getElementsByClassName('tab');

    for (i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function (e) {
            removeActive();
            e.target.classList.add('active');
         })
    }
};

function removeActive() {
    var tabs = document.getElementsByClassName('tab');
    for (i = 0; i < tabs.length; i++) {
        tabs[i].classList.remove('active')
    }
}
window.onload = Activetab; // Just assign the function
window.onload = removeActive; // Just assign the function
函数Activetab(){
var tabs=document.getElementsByClassName('tab');
对于(i=0;i
你有两个选择,不要让它成为一种生活

function Activetab () {
        var tabs = document.getElementsByClassName('tab');
        for (i = 0; i < tabs.length; i++) {
            tabs[i].addEventListener('click', function (e) {
                removeActive();
                e.target.classList.add('active');
            })
        }
    }
函数Activetab(){
var tabs=document.getElementsByClassName('tab');
对于(i=0;i
或者将其作为一个生命并删除
window.onload=Activetab()
生命会被立即调用,所以不需要调用它

生命也可以是匿名的

只需删除包装函数Activatetab的()()