順序付けられていないリストで構成された MasterPage にメニューがあります。選択したタブの色を変更するために JavaScript を使用しようとしています。アンカー タグに href="#" がある場合は問題なく動作しますが、別のページへの実際のリンクを配置すると、カラー タブがホームページに戻ります。選択時に listitem id を onlink に変更します。私は行き止まりの答えで数日間探してきました。これに対する明確な解決策はありますか?
メニューでstackoverflowはどのようにこれを達成しますか? [質問] [タグ] [ユーザー] [バッジ] [未回答]
メニューの HTML
<div id="navbar">
<ul id="menulist">
<li><a onclick="SelectedTab(this);" href="Default.aspx" id="onlink">Home</a></li>
<li><a href="#" id="">View</a></li>
<li><a onclick="SelectedTab(this);" href="About.aspx" id="">About</a></li>
<li><a onclick="SelectedTab(this);" href="Contact" id="">Contact</a></li>
</ul>
</div>
Javascript
<script type="text/javascript">
function SelectedTab(sender) {
var aElements = sender.parentNode.parentNode.getElementsByTagName("a");
var aElementsLength = aElements.length;
var index;
for (var i = 0; i < aElementsLength; i++) {
if (aElements[i] == sender)
{
index = i;
aElements[i].id = "onlink";
} else {
aElements[i].id = "";
}
}
}
</script>
選択したタブの CSS
...stuff
#navbar ul li a#onlink
{
background: #FFF;
color: #465c71;
}
#navbar ul li a#onlink:hover
{
background: #FFF;
color: #465c71;
...more stuff