如果用户已登录,则隐藏 href 链接
Hide an href link if the user is logged in
我是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.
当sign in
页面到达时,我正在使用此公共标头。我的问题是,当用户尝试进入sign in
页面时,他似乎也是home page
链接。
我需要在登录页面中隐藏home page link
和subscription link
。如何隐藏这两个a
元素?
您可以为视图创建视图模型类并将其分配给视图。可以通过设置属性 true/false IsSignedIn
将模型从控制器传递到视图。
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>
Set id to that both home, subscription link and place the following jquery in the sign in page header.
jquery
------------------------------------
<script src="jquery.js"></script>
<script>
$(document).ready(function(e) {
$("#link1,#link2").hide();
});
</script>
html:
---------------------------
<div id="navigation">
<ul>
<li id="link1"><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 id="link2"><a href="/sub.html">Subscription</a></li>
</ul>
</div>
@Rory所提到的,你应该更喜欢它在服务器端进行。但是,如果您想在 JQuery 中执行此操作,请确保您的 href 具有唯一的 ID。假设您的主页链接ID是"主页",那么您可以使用 $('#home').Hide()
和类似的$('#home').Show()
使其可见。
推荐:
<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>
根本不推荐伴侣。这是通过jQuery
(不推荐)如果您登录页面examplesite.com/loginpage
$(document).ready(function () {
if(window.location.href.indexOf("loginpage") > -1) { //Checks if the url has loginpage string
$('#navigation ul li:first').hide();
$('#navigation ul li:last').hide();
}
});
在客户端执行此操作不是一个好的做法。您应该根据授权进行操作。
虽然你可以在客户端这样做,就像这样:
jQuery('#navigation ul li:first').hide();
jQuery('#navigation ul li:last').hide();
我的意思是我有签名用户名和其他的会话变量 details.so 使用它,如何隐藏链接详细信息 – Sush
由于您有会话变量,因此您可以使用它们来隐藏链接。这可以使用 if 条件来实现。
仅当包含用户详细信息的会话变量不为空时,才显示链接。您可以使用脚本。
if(session.username>0)
{
<a href="/home.html?sign=true">Home</a>
<a href="/sub.html">Subscription</a>
}
这不是正确的语法。只是插图的一个例子。
登录页面中添加一个新脚本,它应该最后按脚本顺序排列,以便它可以覆盖其他脚本,如下所示
<head>
<script></script>
<script></scrtipt>
<script src="hide.js"></script>
</head>
现在编写代码以隐藏hide.js
中的链接
$(document).ready(function()
{
$('#navigation ul').children('li').each(function()
{
if($(this).children('a').text()=='Home' || $(this).children('a').text()=='Subscriptions')
{
$(this).hide();
}
})
})
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在单击href链接的同时下载文件
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 浮动页脚栏-使用Bootstrap隐藏
- 在jquery中为显示/隐藏设置cookie
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 从var向代码隐藏函数传递值
- 当锚点HREF源不存在时隐藏图像
- 使用Href Javascript调用更改隐藏输入
- 当鼠标悬停在链接上时,从 href URL 中隐藏状态栏值
- 如果链接没有 href,则隐藏父 TR
- 如果用户已登录,则隐藏 href 链接
- 需要按钮显示/隐藏图像旋转 href 添加到 javascript 代码中
- 隐藏<李>当href为空时
- 如果使用“href”提交页面,则不会发布隐藏字段
- 用Javascript隐藏Href链接
- 从href中隐藏/显示DIV
- 如何隐藏<a href>标记