如何在面板内显示和隐藏<li>?

时间:2018-11-29 16:22:22

标签: javascript html-framework-7

我有一个具有登录页面的应用程序。为了登录,用户有权在面板内看到两个声音(如果用户是admin)。如果用户不是管理员,我不想显示此声音。我的问题是如何隐藏和显示它。我的面板位于index.html中。这是我想显示或不显示的声音,以便获得用户的许可。

            <li id="company" display="none">
                    <a href="/aziende/" class="panel-close" >
                        <div class="item-content">
                            <div class="item-media">
                                <i class="f7-icons ios-only">home</i>
                                <i class="material-icons md-only">home</i>
                            </div>
                            <div class="item-inner">
                                <div class="item-title">Company</div>
                            </div>
                        </div>
                    </a>    
                </li>

                <li id="users" display="none">
                    <a href="/users/" class="panel-close">
                        <div class="item-content">
                            <div class="item-media">
                                <i class="f7-icons ios-only">person</i>
                                <i class="material-icons md-only">account_circle</i>
                            </div>
                            <div class="item-inner">
                                <div class="item-title">Users</div>
                            </div>
                        </div>
                    </a>
                </li>

这是app.js

     {
        name: 'login',
        path: '/login/',
        url: './pages/login.html',
        on:{ 
                pageInit: function(){

                    app.navbar.hide('.navbar');
                    if(user.checkPermission() == 'true'){
                        app.router.navigate('/home/');

                        }
                    }
            },
    },
    {
        name: 'home',
        path: '/home/',
        url: './pages/home.html',
        on: {
            pageInit:   function(e, page) {

                            app.navbar.show('.navbar');
                             if(user.checkPermission() == 'true'){
                                addVoicesToNavbar();

                             }
                            }                                   
                            page.router.clearPreviousHistory();
                        }

        },
    }

此方法告诉我无法设置属性“显示”为空

  function addVoicesToNavbar(){
      document.getElementById("company").display = "block";
      document.getElementById("users").display = "block";

   }

2 个答案:

答案 0 :(得分:1)

display不是有效的html属性,它是CSS属性。

因此,示例中在<li>上设置display="none"不会执行任何操作。

相反,您需要在标记中设置这样的内联CSS样式,以最初隐藏元素:

<li id="users" style="display:none;">

然后在您的函数中更改如下所示的内联CSS样式:

document.getElementById("users").style.display = "block";

答案 1 :(得分:1)

以下是您可以执行的操作示例:

 function addVoicesToNavbar(){
      companyElement = document.getElementById("company");
      companyElement.style.display = "block";

      ...
   }

希望有帮助!