外部HTMLファイルからナビゲーションバーをロードしようとしていて、現在のページに基づいてアンカーのタグクラスを自動的に「アクティブ」に設定しようとしています。外部HTMLからnavbarをロードし、現在のアンカークラスをアクティブに設定する
<html>
<head>
<title>Main</title>
<style>
.active {
background-color: green;
}
</style>
<script>
$(document).ready(loadAndSet());
function loadAndSet() {
loadBar();
setActive();
}
function loadBar() {
$('#bar').load('navigation.html');
}
function setActive() {
var aObjects = document.getElementById("bar").getElementsByTagName("a");
for (var i = 0; i < aObjects.length; i++) {
if (document.location.href.indexOf(aObjects[i].href) >= 0) {
aObjects[i].className = "active";
}
}
}
</script>
</head>
<body>
<div id="bar"></div>
<h1>Content Title</h1>
<p>Some content</p>
</body>
</html>
そして、ここではnavigation.htmlです:私は間違って
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="page2.html">Page 2</a></li>
</ul>
何をやっている
ここでは、コードですか?
EDIT:
新コード:
<html>
<head>
<title>Main</title>
<style>
.active {
background-color: green;
}
</style>
<script>
$(document).ready(loadBar());
function loadBar() {
$('#bar').load('navigation.html', setActive);
}
function setActive() {
$("#home").addClass("active");
}
</script>
</head>
<body>
<div id="bar"></div>
<h1>Content Title</h1>
<p>Some content</p>
</body>
</html>
そしてnavigation.html:
<ul>
<li><a id="home" href="index.html">Home</a></li>
<li><a id="page2" href="page2.html">Page 2</a></li>
</ul>
ナビゲーションバーも...
を使用してみてください:$(ドキュメント).ready(loadBar)。単に関数loadBarを渡し、実行しないでください。あなたのコードでは、loadBarをただちに実行していて、その戻り値を渡します。これは 'unedefined'です。 –