那些年我用MUI开发遇过的坑(二)

    前些日子我开发的时候遇到了一个小问题(如图),在这个页面我有一个弹出菜单(popover),如果我不将菜单隐藏直接打开一个新的页面,那么神奇的事就发生了,这个菜单将会一直处于active状态,不会隐藏起来。

              那些年我用MUI开发遇过的坑(二)_第1张图片

    正常情况下,可能不是什么大问题,但是还是很影响用户体验的,也有可能会影响其他功能的实现。针对这个问题我上网百度了一下,有说利用mui('#popover').popover('hide')可以强制隐藏popover,但是我试过好像并不起作用。后来我在Dcloud的官方论坛上找到了一个比较靠谱的解决方案。原理就是在框架中重写一个隐藏的方法。具体的可以参见以下地址:

     mui-popover如何强制隐藏 - DCloud问答

    由于mui的不断更新,可能文章里面说的代码行数不一定正确,但是只要将代码复制到差不多的位置,还是可以运行成功的。我尝试了一下,这次popover总算是成功的藏起来了。但是又有一个问题衍生出来了,虽然popover隐藏起来了,但是我总感觉它好像一直存在。。。。。(多么灵异的事件啊)。。。于是我查看了一下代码,果然

      

    他隐藏的方法只是将CLASS_ACTIVE这个class移除掉,那么这个CLASS_ACTIVE有是什么 呢,于是我又查看了一下源码,原来他只不过是将popover的透明度变回去了,难怪我觉得它一直都在。

         那些年我用MUI开发遇过的坑(二)_第2张图片

    对于这个问题修改起来其实也容易,我们只需要在上面hidePopover的方法中,添上一句或直接将popover.classList.remove(CLASS_ACTIVE)这句用popover.style.display='none',来代替就可以了。

你可能感兴趣的:(那些年我用MUI开发遇过的坑(二))