根据var

时间:2018-02-07 04:07:57

标签: javascript jquery html hide show

我有两个菜单项: -

<li role="presentation"><a class="logged" id="login_a" href="login.php" data-toggle="tooltip" title="Login"><i class="fa fa-sign-in"></i></a></li>
<li role="presentation"><a class="logged" id="logout_a" href="./includes/functions.php?contract_action=logout" data-toggle="tooltip" title="Logout"><i class="fa fa-sign-out"></i></a></li>

我在我的标题中(在脚本标记内)

    var LoggedIN = "<?php echo $_SESSION['LoggedIN']; ?>";

    if (LoggedIN == 'yes') {
        $("#login_a").hide();
        $("#logout_a").show();
        // $(".logged").toggle();
        alert('User IS logged in!');
    }else{
        $("#logout_a").hide();
        $("#login_a").show();
        // $(".logged").toggle();
        alert('User is NOT logged in!');
    }

但是登录菜单项永远不会隐藏(但是当用户登录时警报会显示)所以我知道var IS获得了正确的val并且jquery可以看到。

登录菜单项是否隐藏,我做错了什么? (请注意.toggle one ...我在这里看到这个可能性之后我也试过这个)我现在已经研究了两个小时而没有任何快乐。

并且没有任何类型的&#34;点击&#34;选项,因为我在显示页面之前测试会话var并且如果没有设置我将用户发送到登录页面...这会在提交时将它们发送到functions.php,然后将它们发送回索引登录时.php - 再次检查用户是否已登录,然后使用正确的主页面显示...所有这些都正常工作...我只是无法获得显示/隐藏的darn菜单正确的按钮(菜单显示为fontawesome图像而不是文本)

3 个答案:

答案 0 :(得分:1)

使用php来处理这个...应该在开始时考虑到这一点但是...偶尔会去寻找花哨而不是简单/实用。谢谢大家。

答案 1 :(得分:0)

你需要测试返回的LoggedIN变量。排除故障! 我试图在这里复制您的方案https://jsbin.com/hicefeh/edit?html,js,output尝试更改变量&#39;是&#39;或者&#39;没有&#39;

&#13;
&#13;
var LoggedIN = "yes"; // try to play here with yes or no

    if (LoggedIN == 'yes') {
        $("#login_a").hide();
        $("#logout_a").show();
        // $(".logged").toggle();
        alert('User IS logged in!');
    }else{
        $("#logout_a").hide();
        $("#login_a").show();
        // $(".logged").toggle();
        alert('User is NOT logged in!');
    }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
        <li role="presentation" id="login_a" ><a class="logged" href="login.php" data-toggle="tooltip" title="Login"><i class="fa fa-sign-in"></i> Login</a></li>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
        <li role="presentation" id="logout_a" ><a class="logged" href="./includes/functions.php?contract_action=logout" data-toggle="tooltip" title="Logout"><i class="fa fa-sign-out"></i> Logout</a></li>
  </ul>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我认为这是因为你的javascript代码是在html代码的开头。由于在加载html内容之前,菜单项javascript代码执行。因此,您将您的javascript代码置于html 内容之下,或者将jquery document.ready 更好。