当某些链接相同时,当前所选项目
Current selected item when some links are the same
我正试图创建一个堆叠导航列表,突出显示您选择的项目。它看起来像这样。
<div class="page-list">
<ul class="nav nav-pills nav-stacked">
<li><a href="Page1.html" > Page1 </a></li>
<li><a href="Page2.html" > Page2 </a></li>
<li><a href="Page3.html" > Page3 </a></li>
<li><a href="Page4.html" > Page4 </a></li>
<li><a href="Page5.html" > Page5 </a></li>
<li><a href="Unavailable.html" > Page6 </a></li>
<li><a href="Unavailable.html" > Page7 </a></li>
</ul>
</div>
我遇到的问题是,最后两个页面共享同一个链接,我似乎无法在列表中突出显示所选页面。
我把它用于我的JavaScript。
<script>
$(function(){
$('a').each(function() {
if ($(this).prop('href') == window.location.href) {
$(this).addClass('current');
}
});
});
</script>
但这会导致指向同一页面的所有链接高亮显示。
我试着用这个来解决它,但现在点击时没有链接高亮显示。
<script>
$(".page-list a").click(function() {
$(this).parent().previoussibling().find('a').removeClass('current');
$(this).addClass("current");
});
</script>
解决此问题的一种方法是创建一个查询字符串来指示应该突出显示哪个链接。
...
<li><a href="Unavailable.html?page=6" > Page6 </a></li>
<li><a href="Unavailable.html?page=7" > Page7 </a></li>
...
然后在Javascript中,读取查询字符串并决定突出显示哪个页面。这个StackOverflow问题可以帮助您读取查询字符串。
如果你不想让用户看到www.yourwebsite.com/Unavailable.html?page=7
,你也可以通过使用cookie来实现这一点。有关在JavaScript中使用cookie的信息,请参阅本教程。如果你喜欢使用cookie,有很多库可以帮助你。
无论您选择哪种方式将信息传递到下一页,都需要在a
标签中添加id
(或以其他方式唯一标识每个链接),以便突出显示相应的链接。
下面是一个使用查询字符串思想的示例:
<div class="page-list">
<ul class="nav nav-pills nav-stacked">
...
<li><a id="6" href="Unavailable.html?page=6" > Page6 </a></li>
<li><a id="7" href="Unavailable.html?page=7" > Page7 </a></li>
</ul>
</div>
<script>
$(function(){
$('a').each(function() {
if ($(this).attr('id') == getParameterByName('page')) {
$(this).addClass('current');
}
});
});
function getParameterByName(name) {
//this code is taken directly from https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript#answer-901144
name = name.replace(/['[]/, "''[").replace(/[']]/, "'']");
var regex = new RegExp("[''?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/'+/g, " "));
}
</script>
相关文章:
- 在BootStrap菜单栏中为所选项目设置背景,类似于BootStrap中的父导航选项
- jQuery:根据select选项中的每页项目进行分页
- 更新:仅根据单选按钮和所选选项选择特定项目
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- 如何在angular js中的select选项中获取所选项目id
- 如何将一个表单中的项目添加到 Rails 中另一个表单的下拉选项
- 当表单控件选项具有多个参数时,如何在组合框中填充所选项目
- 通过单击按钮将选项卡(项目)添加到选项卡面板,扩展
- 如何将此选项添加到此图像选取器项目中
- 更新“项目”选项以进行排序
- 在呈现项目后,挖空选择绑定回调的选项
- 在单击选项卡式项目时隐藏和创建另一个对象 - HTML CSS
- 使用表排序器筛选所选选项列表中的选定项目
- jQuery 在选项列表中重新填充所选项目
- 将项目插入活动选项卡窗格
- Microsoft Dynamics Online:将所有选项集项目复制到多行文本字段(使用 JavaScript)
- 在选择选项中选择多个项目,而不使用“Ctrl”键
- jQuery Mobile,在选项列表中选择所有项目
- 从下拉列表中选择项目后,显示新选项并显示文本
- 如何在浏览器窗口/选项卡关闭时删除本地存储项目