“ hideTabs”不是函数

时间:2019-09-02 12:12:36

标签: javascript function

我想用js创建一个基本的选项卡UI,我做到了,但是现在我试图重组代码,使其可以与每个网站一起使用,但是它给了我一个错误:

'this.hideTabs()' is not a function

我确定它是一个函数。

我尝试删除this关键字,但是仍然无法正常工作,然后我尝试在selectTab函数的上方和下方创建hideTabs函数,但仍然没有成功< / p>

hideTabs函数:

hideTabs: function () {
    this.removeHighlight();

    this.tabContents.forEach(item => {
        item.classList.remove(this.activeClass);
        item.style.display = "none";
    });
}

selectTab函数:

selectTab: function () {
    this.hideTabs()
    this.classList.add(this.highlightClass);
    const tabContent = document.querySelector(`#${this.id}${this.contentIdTemplate}`);
    tabContent.classList.add(this.activeClass);
}

此对象的构造函数(仅部分):

Init(highlightClass, activeClass, ...) {
    this.highlightClass = hightlightClass;

    [...]

    // initially hide all the tabs and remove the borders
    this.hideTabs();
    // and show the main tab when the user visits the website
    this.tabItems.item(0).classList.add(this.hightlightClass);

    [...]
}

对象定义(部分):

var tabs {  
    hightlightClass: "",

    [...]

    tabItems: null,
    tabContents: null,

    removeHighlight: function() { [...] },

    hideTabs: function() { [...] },

    selectTab: function() { [...] },

    Init(...) { [...] }
}

这就是我开始的方式:

tabs.Init( [...] );

令人惊讶的是,在Init构造函数中,它正确地调用了该函数,并隐藏了选项卡,但是当我尝试选择一个选项卡时,它会丢弃此错误:

'this.hideTabs()' is not a function

0 个答案:

没有答案