Javascript 无法在HtmleElement上切换classList.toggle

Javascript 无法在HtmleElement上切换classList.toggle,javascript,html,Javascript,Html,我制作了一个侧边栏,我需要用它的类方法隐藏和显示它。从控制台调用方法Sidebar.show()时,它会删除元素的sb hidden-类,使其可见 this.htmlElement.classList.toggle('sb-hidden',false) 但是,从代码中的“单击”事件处理程序调用侧边栏.show()方法时不会发生这种情况 clickButton.addEventListener('click', () => { blogSidebar.show() }) 为什么

我制作了一个侧边栏,我需要用它的类方法隐藏和显示它。从控制台调用方法
Sidebar.show()
时,它会删除元素的
sb hidden
-类,使其可见

this.htmlElement.classList.toggle('sb-hidden',false)

但是,从代码中的“单击”事件处理程序调用
侧边栏.show()方法时不会发生这种情况

clickButton.addEventListener('click', () => {
    blogSidebar.show()
  })
为什么单击
单击按钮时侧边栏不显示

if(!(“Event.prototype中的路径”)
Object.defineProperty(Event.prototype,“路径”{
get:function(){
var路径=[];
var currentElem=此.target;
while(currentElem){
路径推送(currentElem);
currentElem=currentElem.parentElement;
}
if(path.indexOf(窗口)==-1&&path.indexOf(文档)==-1)
路径推送(文档);
if(路径索引of(窗口)=-1)
推送(窗口);
返回路径;
}
});
类边栏{
构造函数(){
this.htmlElement=document.createElement('div'))
this.htmlElement.className='sidebar'
this.contentElement=document.createElement('div')
this.contentElement.className='sb content'
addEventListener('单击',(事件)=>{
var inSidebar=false
对于(变量i=0;i{
this.show()
})
打破
“隐藏”案例:
元素。addEventListener('单击',(事件)=>{
this.hide()
})
打破
违约:
}
}
}
var clickButton=document.getElementById('clickButton'))
const blogSidebar=新边栏()
clickButton.addEventListener('click',()=>{
blogSidebar.show()
})
addEventListener('load',()=>{
blogSidebar.show()
})
正文{
背景色:#000;
}
.侧边栏{
位置:固定;
排名:0;
右:0;
宽度:30vw;
身高:100%;
背景色:#fff;
z指数:99999999;
过渡:右0.3s;
}
使某人满意{
}
把某人藏起来{
右图:-30vw;
}

显示侧边栏
当您可以在此处发布外部代码时,请不要使用外部代码。外部链接可能会随着时间的推移而中断,如果出现这种情况,未来的读者将无法理解这个问题。如果强制删除该类,为什么要使用
toggle()
?为什么不直接使用
classList.remove('sb-hidden')
当您可以在这里发布外部代码时,请不要使用它。外部链接可能会随着时间的推移而中断,如果出现这种情况,未来的读者将无法理解这个问题。如果强制删除该类,为什么要使用
toggle()
?为什么不直接使用
classList.remove('sb-hidden')