2

基本的に、3 つのリンク、いくつかのテキスト、3 つの div があります。(例えば:

<a href="#A">A</a><br/>
<a href="#B">B</a><br/>
<a href="#C">C</a><br/>
<p>Blah blah</p>
<div id="A">BlAh</div>
<div id="B">BlBh</div>
<div id="C">POMEGRANTE!</div>

現時点では、A をクリックして A などにジャンプすると、CSS の :target セレクターによって選択された div が強調表示されます。ただし、div A を選択したまま、リンク A を (div とは別の方法で) 強調表示したいと思います。奇妙で不安定な回避策を必要としないJavascript または CSS でこれを行う方法はありますか?

4

2 に答える 2

1

クリック時にリンクに「アクティブな」クラスを与えることができます。jQueryを使った実装はこちら

$('a').click(function(){
    $('.active').removeClass('active');
    $(this).addClass('active');
});

デモフィドル

そしてネイティブJavascriptのもの:

var elems =document.getElementsByTagName("a");
for (var i = 0; i < elems.length; i++) {
        elems[i].addEventListener("click", function (e) {
                for (var i = 0; i < elems.length; i++) {
                    elems[i].className="";
                };
                this.className = "active";
        });
}
于 2013-08-19T05:50:54.163 に答える