实现导航侧边栏以加载<div>链接单击


的链接单击。

我正在尝试在左侧实现一个带有链接列表(<a>(的导航侧边栏,以便在单击每个链接时,相应的<div>将在右侧加载。

当我在<a>中有一个onclick属性的函数时.它在浏览器控制台上给我错误。

未捕获的引用错误:未定义调用函数

这是我的实现:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
	function callFunction(){alert("Load divs");}
});
</script>
<style>
div.container {
width: 100%;
border: 1px solid gray;
}
header, footer {
padding: 1em;
color: white;
background-color: powderblue;
clear: left;
text-align: center;
}
nav {
float: left;
max-width: 160px;
margin: 0;
padding: 1em;
}
nav ul {
list-style-type: none;
padding: 0;
}

nav ul a {
text-decoration: none;
}
article {
margin-left: 170px;
border-left: 1px solid gray;
padding: 1em;
overflow: hidden;
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>My Company</h1>
</header>

<nav>
<ul>
<li><a href="#" onclick="callFunction()">Link1</a></li>
<li><a href="#" onclick="callFunction()">Link2</a></li>
<li><a href="#" onclick="callFunction()">Link3</a></li>
</ul>
</nav>
<!--<div id="Link1" class="class1">
	<h1>Link1</h1>
	<p>Link1 detail</p>
</div>
<div id="Link2" class="class1">
	<h1>Link2</h1>
	<p>Link2 detail</p>
</div>-->
<footer>Copyright &copy; myCompany</footer>
</div>
</body>
</html>

我的要求是有一个链接和s的列表,其中s应该被隐藏,并且只有在单击相应的链接时才会出现。

这是应该适合您的代码。

  1. <div>不会以初始方式呈现/显示。

  2. 单击链接(<a>(,将显示相应的<div>

  3. 保留导航侧栏。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
	function loadContent(selector){
		$("#loadOnClick").html($(selector).html());
	};
	
	$(document).ready(function(){

		loadContent("#userGuide");

});
</script>
<style>
div.container11 {
width: 100%;

}
section.container1{
	display: -webkit-flex; /* Safari */
	display: flex;
}
.displayInline{
	-webkit-flex: 1;  /* Safari 6.1+ */
-ms-flex: 1;  /* IE 10 */    
flex: auto;
}
header, footer {
padding: 1em;
color: white;
background-color: powderblue;
clear: left;
text-align: center;
}
nav {
	border-right: 2px solid gray;
}
nav ul {
list-style-type: none;
padding-top: 5px;
}

nav ul a {
text-decoration: none;
	line-height: 30px;
}
div#loadOnClick {
	float: right;
}
.displayOnClick{
	display: none;
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>My Company</h1>
</header>
<section id="container1">
	<nav class="displayInLine" style="width: 20%; float: left;">
	  <ul>
		<li><a href="#userGuide" class="quickLinks" onclick='loadContent("#userGuide")'>User Guide</a></li>
		<li><a href="#SOP" class="quickLinks" onclick='loadContent("#SOP")'>SOP</a></li>
		<li><a href="#procedurePages" class="quickLinks" onclick='loadContent("#procedurePages")'>Procedure pages</a></li>
		<li><a href="#departmentInformation" class="quickLinks" onclick='loadContent("#departmentInformation")'>Department information</a></li>
		<li><a href="#hoursOfOperations" class="quickLinks" onclick='loadContent("#hoursOfOperations")'>Hours of operations</a></li>
	  </ul>
	</nav>
	<div class="displayInLine" id="loadOnClick" style="width:75%; float: right;">
		
	</div>
</section>
<div id="userGuide" class="displayOnClick">
	<h1>User Guide</h1>
	<p>This is the userguide for employees</p>
</div>
<div id="SOP" class="displayOnClick">
	<h1>SOP</h1>
	<p>This is the Statement of purpose for employees</p>
</div>
<div id="procedurePages" class="displayOnClick">
	<h1>Procedure pages</h1>
	<p>This is the Procedure pages for employees</p>
</div>
<div id="departmentInformation" class="displayOnClick">
	<h1>Department information</h1>
	<p>This is the Department information for employees</p>
</div>
<div id="hoursOfOperations" class="displayOnClick">
	<h1>Hours of operations</h1>
	<p>This is the Hours of operations for employees</p>
</div>
<footer>Copyright &copy; Om Sao</footer>
</div>
</body>
</html>

您不需要在状态$(document).ready调用callFunction(),因为只有在加载页面并且当文档准备就绪/加载时,才会引发错误。因此,将定义置于$(document).ready之外。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function callFunction(){alert("Load divs");}
</script>
<style>
div.container {
width: 100%;
border: 1px solid gray;
}
header, footer {
padding: 1em;
color: white;
background-color: powderblue;
clear: left;
text-align: center;
}
nav {
float: left;
max-width: 160px;
margin: 0;
padding: 1em;
}
nav ul {
list-style-type: none;
padding: 0;
}

nav ul a {
text-decoration: none;
}
article {
margin-left: 170px;
border-left: 1px solid gray;
padding: 1em;
overflow: hidden;
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>My Company</h1>
</header>

<nav>
<ul>
<li><a href="#" onclick="callFunction()">Link1</a></li>
<li><a href="#" onclick="callFunction()">Link2</a></li>
<li><a href="#" onclick="callFunction()">Link3</a></li>
</ul>
</nav>
<!--<div id="Link1" class="class1">
	<h1>Link1</h1>
	<p>Link1 detail</p>
</div>
<div id="Link2" class="class1">
	<h1>Link2</h1>
	<p>Link2 detail</p>
</div>-->
<footer>Copyright &copy; myCompany</footer>
</div>
</body>
</html>

最新更新