OnClickがjavascriptを介してトリガーされたときに、要素のクラスを変更する方法を理解する必要があります。
基本的に、私は次のコードを持っています:
index.html
<div class="bottom_section">
<div class="tab_section">
<div class="tabing">
<ul>
<li id="active_news"><a onclick="ContentSwitch('News');">
<img src="includes/t_news.png" width="23" height="81" alt="t_news">
</a></li>
<li id="active_events"><a onclick="ContentSwitch('Events');">
<img src="includes/t_events.png" width="20" height="121" alt="t_events">
</a></li>
<li id="active_updates"><a onclick="ContentSwitch('Updates');">
<img src="includes/t_updates.png" width="19" height="141" alt="t_updates">
</a></li>
</ul>
</div>
この画像のリストは、ボックスに表示されるコンテンツを切り替えるボックスの左側に表示されます。
私のcssにクラスがあります:
.bottom_section .tabing li.active{background: #1ca1e3 url(tab_li_active.gif) repeat-x 0 0;}
これにより、タブ画像の背景が暗い色合いに変わり、「クリック」されたことを示します。したがって、タブが「選択」されている場合は、基本的にclass="active"を<li>タグに追加する必要があります。
私はここでStackOverflowで見つけたjavascriptコードを持っており、クラスを切り替えようとしていますが、機能しません。
function ContentSwitch(id) {
if (id == "News") {
if (document.getElementById("news_content").style.display = "none") {
document.getElementById("news_content").style.display = "block";
document.getElementById("active_news").className = document.getElementById("active_news").className.replace( /(?:^|\s)active(?!\S)/ , '' )
// Hide other content
document.getElementById("events_content").style.display = "none";
document.getElementById("updates_content").style.display = "none";
}
}
if (id == "Events") {
if (document.getElementById("events_content").style.display = "none") {
document.getElementById("events_content").style.display = "block";
document.getElementById("active_events").className = document.getElementById("active_events").className.replace( /(?:^|\s)active(?!\S)/ , '' )
// Hide other content
document.getElementById("news_content").style.display = "none";
document.getElementById("updates_content").style.display = "none";
}
}
if (id == "Updates") {
if (document.getElementById("updates_content").style.display = "none") {
document.getElementById("updates_content").style.display = "block";
document.getElementById("active_updates").className = document.getElementById("active_updates").className.replace( /(?:^|\s)active(?!\S)/ , '' )
// Hide other content
document.getElementById("news_content").style.display = "none";
document.getElementById("events_content").style.display = "none";
}
}
}
すべてのonclickは機能しますが(コンテンツは正常に切り替えられます)、タブの画像は切り替わりません。class = "active"を<li>タグに手動で追加し、他のタブをクリックすると、アクティブが消えて戻ってこないため、JavaScriptが何かを実行しています。
私は何が欠けていますか?
あなたが提供できるどんな助けにも感謝します。