javascript - 使用锚标签链接打开标签?
问题描述
所以我在一个页面上有两个标签,带有锚标签-我使用标题菜单项上的锚从主页导航到它们。
我已经使用活动类和 aria-expanded="true" 让实际的选项卡工作,但我无法从标题中获取适当的选项卡以处于活动状态。
即:1.标题菜单->单击#tab2链接2.加载页面->滚动到锚标记-> tab2已打开(这是我遇到问题的部分,除非我实际单击tab2,否则tab 1保持打开状态按钮)
我试图改变所涉及的活动类,但我对 javascript/jquery 还很陌生,所以我不确定我是否能做到;此外,这是在 worpress 中,并且标题菜单没有其自身元素的 id 字段。
================================
编辑,澄清:我有标签工作,我可以从标题链接转到页面上的它们,我只需要根据我从标题单击的链接打开正确的标签
我也尝试过启动 .click(#tab2) 但脚本无法正常运行。
if(window.location.href.indexOf("tab2") > -1) {
document.getElementById('tab2').click();
}
编辑:标题 HTML fot 链接:
<ul class="uk-nav uk-nav-navbar">
<li class="uk-active">
<a title="" href="testsite.com/#tab1" >tab 1</a></li>
<li class="uk-active"><a title="" href="testsite.com/#tab2"
class="">tab2</a>
</li>
</ul>
标签 HTML
<li class="uk-width-medium-1-4 active" id="tab1" aria-expanded="false">
<a class="uk-button tab1">tab1</a>
</li>
<li class="uk-width-medium-1-4 " id="tab2" aria-expanded="false">
<a class="uk-button tab2">tab2</a>
</li>
Javascript:
var ai = document.getElementById(""); [I'm having trouble with this, cause I can't see a way to attach an id to a wordpress menu item]
var ch = document.getElementById("");
ai.onclick = function(){
document.getElementById('tab1').click();
}
ch.onclick = function(){
document.getElementById('tab2').click();
}
解决方案
您也可以使用 jQuery 进行尝试。在下面添加示例代码片段,请查看。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Dynamic Tabs</h2>
<p>To make the tabs toggleable, add the data-toggle="tab" attribute to each link. Then add a .tab-pane class with a unique ID for every tab and wrap them inside a div element with class .tab-content.</p>
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">Home</a></li>
<li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
<li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
<li><a data-toggle="tab" href="#menu3">Menu 3</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h3>HOME</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</div>
<div id="menu1" class="tab-pane fade">
<h3>Menu 1</h3>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<div id="menu2" class="tab-pane fade">
<h3>Menu 2</h3>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
</div>
<div id="menu3" class="tab-pane fade">
<h3>Menu 3</h3>
<p>Eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var anchorHash = window.location.href.toString();
if( anchorHash.lastIndexOf('#') != -1 ) {
anchorHash = anchorHash.substr(anchorHash.lastIndexOf('#'));
if( $('a[href="'+ anchorHash +'"]').length > 0 ) {
$('a[href="'+ anchorHash +'"]').trigger('click');
}
}
});
</script>
</body>
</html>
推荐阅读
- sql - 用于报告的 Azure SQL 工具 - 参数化存储过程
- php - Google api客户端php访问令牌不起作用
- vb.net - VB.NET:如何获取 Windows 10 中的 SQL 服务器名称和实例名称?
- asp.net-mvc - 使用 MVC 验证 CSV 文件中的数据
- django - 显示错误时以 django 形式保持焦点
- python - 读取,将 .xlsx 文件转换为 csv 和连接
- html - 如何在角度 6 中单击图像时更改边框半径
- java - 为什么这个 toString() 方法会导致 StackOverFlowError?
- angular - p-message(KeyFilterModule) 不是 Angular6 中的已知元素
- mysql - MySQL不同连接表的问题