Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果用户已登录,则隐藏href链接_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如果用户已登录,则隐藏href链接

Javascript 如果用户已登录,则隐藏href链接,javascript,jquery,html,Javascript,Jquery,Html,我不熟悉jQuery。我在页眉中有以下a链接 <div id="navigation"> <ul> <li><a href="/home.html?sign=true">Home</a></li> <li><a href="/jobs.html">Tests</a></li> <li><a href="/

我不熟悉jQuery。我在页眉中有以下
a
链接

<div id="navigation">
    <ul>
        <li><a href="/home.html?sign=true">Home</a></li>
        <li><a href="/jobs.html">Tests</a></li>
        <li><a href="/vps.html">Jobs1</a></li>
        <li><a href="/ust.html">Jobs2</a></li>
        <li><a href="/sub.html">Subscription</a></li>                  
    </ul>
</div>

此标题包含在公共
index.html中。
登录
页面到达时,我正在使用此公共标题。我的问题是,当用户试图进入
登录
页面时,他似乎也看到了
主页
链接


我需要在登录页面中同时隐藏
主页链接
订阅链接
。如何隐藏这两个
a
元素?

正如@Rory所提到的,您应该更喜欢在服务器端进行操作。 但是,如果您想在JQuery中执行此操作,请确保您的href具有唯一的id。 假设您的主链接id为“Home”,那么您可以使用
$(“#home”).Hide()
和类似的
$(“#home”).Show()
使其可见。

正如@Rory所提到的,您应该更喜欢在服务器端执行。 但是,如果您想在JQuery中执行此操作,请确保您的href具有唯一的id。 假设您的主链接id为“Home”,那么您可以使用
$(“#home”).Hide()
和类似的
$(“#home”).Show()
使其可见。

可以为视图创建视图模型类并将其指定给视图。通过设置
IsSignedIn
属性true/false,可以将模型从控制器传递到视图

public class MyViewModel
{
bool IsSignedIn{get;set;}
}

@model MyViewModel

<div id="navigation">
    <ul>
@if(Model.IsSignedIn)
{
        <li><a href="/home.html?sign=true">Home</a></li>
}
        <li><a href="/jobs.html">Tests</a></li>
        <li><a href="/vps.html">Jobs1</a></li>
        <li><a href="/ust.html">Jobs2</a></li>
@if(Model.IsSignedIn)
{
        <li><a href="/sub.html">Subscription</a></li>  
}                
    </ul>
</div>
公共类MyViewModel
{
bool IsSignedIn{get;set;}
}
@模型MyViewModel
    @if(型号IsSignedIn) {
  • }
  • @if(型号IsSignedIn) {
  • }

您可以为视图创建视图模型类并将其指定给视图。通过设置
IsSignedIn
属性true/false,可以将模型从控制器传递到视图

public class MyViewModel
{
bool IsSignedIn{get;set;}
}

@model MyViewModel

<div id="navigation">
    <ul>
@if(Model.IsSignedIn)
{
        <li><a href="/home.html?sign=true">Home</a></li>
}
        <li><a href="/jobs.html">Tests</a></li>
        <li><a href="/vps.html">Jobs1</a></li>
        <li><a href="/ust.html">Jobs2</a></li>
@if(Model.IsSignedIn)
{
        <li><a href="/sub.html">Subscription</a></li>  
}                
    </ul>
</div>
公共类MyViewModel
{
bool IsSignedIn{get;set;}
}
@模型MyViewModel
    @if(型号IsSignedIn) {
  • }
  • @if(型号IsSignedIn) {
  • }

在客户端执行此操作不是一个好做法。你应该根据授权来做

尽管您可以在客户端这样做:

jQuery('#navigation ul li:first').hide();
jQuery('#navigation ul li:last').hide();

在客户端这样做不是一个好的做法。你应该根据授权来做

尽管您可以在客户端这样做:

jQuery('#navigation ul li:first').hide();
jQuery('#navigation ul li:last').hide();
我的意思是,我有用于签名用户名和其他名称的会话变量 详细信息。那么如何使用此选项隐藏链接详细信息–Sush

由于您有会话变量,因此可以使用相同的变量隐藏链接。这可以通过使用if条件来实现

仅当包含用户详细信息的会话变量不为空时,才显示链接。 您可以使用脚本

if(session.username>0)
{
<a href="/home.html?sign=true">Home</a>
<a href="/sub.html">Subscription</a>
}
if(session.username>0)
{
}
这不是正确的语法。这只是一个例子

我的意思是,我有用于签名用户名和其他名称的会话变量 详细信息。那么如何使用此选项隐藏链接详细信息–Sush

由于您有会话变量,因此可以使用相同的变量隐藏链接。这可以通过使用if条件来实现

仅当包含用户详细信息的会话变量不为空时,才显示链接。 您可以使用脚本

if(session.username>0)
{
<a href="/home.html?sign=true">Home</a>
<a href="/sub.html">Subscription</a>
}
if(session.username>0)
{
}

这不是正确的语法。仅举一个示例。

在您的登录页面中添加一个新脚本,它应该按照脚本的顺序排列,以便可以覆盖其他类似的脚本

<head>
 <script></script>
 <script></scrtipt>
 <script src="hide.js"></script>
</head>

在您的登录页面中添加一个新脚本,它应该按照脚本的顺序排列,这样它就可以覆盖像这样的其他脚本

<head>
 <script></script>
 <script></scrtipt>
 <script src="hide.js"></script>
</head>
将id设置为home和subscription链接,并将以下jquery放置在登录页面标题中。
jquery
------------------------------------
$(文档).ready(函数(e){
$(“#link1,#link2”).hide();
});    
html:
---------------------------
将id设置为home、subscription链接,并将以下jquery置于登录页面标题中。
jquery
------------------------------------
$(文档).ready(函数(e){
$(“#link1,#link2”).hide();
});    
html:
---------------------------
推荐:

<div id="navigation">
    <ul>
<?php if(isset($_SESSION)){
        <li><a href="/home.html?sign=true">Home</a></li>
} ?>
        <li><a href="/jobs.html">Tests</a></li>
        <li><a href="/vps.html">Jobs1</a></li>
        <li><a href="/ust.html">Jobs2</a></li>
<?php if(isset($_SESSION)){
        <li><a href="/sub.html">Subscription</a></li>  
} ?>                
    </ul>
</div>
建议:

<div id="navigation">
    <ul>
<?php if(isset($_SESSION)){
        <li><a href="/home.html?sign=true">Home</a></li>
} ?>
        <li><a href="/jobs.html">Tests</a></li>
        <li><a href="/vps.html">Jobs1</a></li>
        <li><a href="/ust.html">Jobs2</a></li>
<?php if(isset($_SESSION)){
        <li><a href="/sub.html">Subscription</a></li>  
} ?>                
    </ul>
</div>

如果您的用户正在登录您的站点,您应该在服务器端根据他们的会话凭据而不是javascript进行登录。是否有可能在jquery中进行登录。这是完全可能的,但它不会阻止人们查看页面的源代码,以查看他们需要进入哪些登录受限页面。此外,如果他们禁用了javascript,您的安全性将消失。只需保存在cookie或本地存储中,但这实际上应该在服务器端完成。在客户端这样做对人类来说是一种犯罪,这是真的。您可以检查会话变量的状态,并为所需的
标记编写一个if条件。如果您的用户正在登录您的站点,您应该在服务器端根据他们的会话凭据这样做,不在javascript中。有没有可能在jquery中这样做。这是完全可能的,但它不会阻止人们查看页面的源代码,看看他们需要去哪里才能进入受登录限制的页面。此外,如果他们禁用了javascript,您的安全性将被关闭。只需保存在cookie或本地存储中,但这实际上应该在s中完成