我有以下三个项目并排显示:
<div class="page-header">
<h1 style="line-height:0">Title</h1>
<ul style="float: right; list-style-type: none;">
<li><a href="http://test1.com">T1</a></li>
<li><a href="http://test2.com">T2</a></li>
<li><a href="#">T3</a></li>
</ul>
</div>
我想在用户点击它时突出显示该项目(例如T1)。类似于stackoverflow的问题,如问题,标签,用户等等。
答案 0 :(得分:3)
检查出来:
// Start up jQuery
$(document).ready(function() {
$('a.nav').click(function(e) {
e.preventDefault();
$('a.nav').removeClass('current_page');
// Do an ajax call instead
$('#response').html($(this).attr("href"));
$(this).addClass('current_page');
});
});
* {
font-family: Verdana;
font-size: 13px;
}
div#wrapper {
margin: 20px;
}
.current_page {
color: red;
font-weight: bold;
text-decoration: none;
}
#response {
width: 300px;
height: 200px;
padding: 5px;
border: 1px dotted #777;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
<a class="nav" href="http://www.google.com">Google</a> |
<a class="nav" href="http://www.facebook.com">Facebook</a> |
<a class="nav" href="http://www.stackoverflow.com">Stackoverflow</a> |
<a class="nav" href="http://www.myspace.com">Myspace</a> |
<a class="nav" href="http://www.craigslist.com">Craigslist</a>
<p> </p>
<p>Response:</p>
<div id="response"></div>
</div>
基本上,它将类.current_page
推送到激活的锚标记,该标记在DOM中打印MEMORY ID。然后,您将实现ajax调用以在页面中注入内容。
答案 1 :(得分:0)
诀窍是让一个类显示与锚点:hover
伪造元素相同的样式。没有办法只使用html和css突出显示当前活动选项卡;代码将是必要的,以确定当前活动的页面(或类必须手动编码到每个页面),因为一旦加载下一页,它就无法记住最后点击的内容。
Stackoverflow实际上在该菜单的li标签上添加了一个名为youarehere
的类。
喜欢这段代码:
#nav ul li {
background: grey;
color: white;
}
#nav ul li:hover {
background: orange;
}
#nav ul li.youarehere {
background: orange;
}
<div id="nav">
<ul>
<li class="youarehere"><a href="index.php">Home</a></li>
<li><a href="blog.php">Blog</a></li>
</ul>
</div>