我想用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