2017-07-07 11 views
0

Menubarはリンクのリストに基づいています。クリックしたアイテムの背景色を変更して残す必要があります。私の場合、色は短時間で変化し、CSSの背景に戻ります。リンクに基づくMenubar。クリック時に背景が変化しない

$(function() { 
 
    $(".menu a").bind("click", function() { 
 
    $(".menu a").removeClass("clicked"); 
 
    $(this).addClass("clicked"); 
 
    }); 
 
});
.menu { 
 
    width: auto; 
 
    display: block; 
 
} 
 

 
.menu li { 
 
    display: inline; 
 
} 
 

 
.menu li a { 
 
    border: solid 2px white; 
 
    color: white; 
 
    text-decoration: none; 
 
    background: #a0a0a0; 
 
    width: 100px; 
 
    float: left; 
 
} 
 

 
.menu a.clicked { 
 
    background: #b34a4a; 
 
} 
 

 
.menu { 
 
    width: auto; 
 
    display: block; 
 
} 
 

 
.menu li { 
 
    display: inline; 
 
} 
 

 
.menu li a { 
 
    border: solid 2px white; 
 
    color: white; 
 
    text-decoration: none; 
 
    background: #a0a0a0; 
 
    width: 100px; 
 
    float: left; 
 
} 
 

 
.menu a.clicked { 
 
    background: #b34a4a; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div class="menu"> 
 
    <ul> 
 
    <li> <a href="">ITEM 1</a> 
 
     <a href="">ITEM 2</a> 
 
     <a href="">ITEM 3</a> 
 
     <a href="">ITEM 4</a> 
 
     <a href="">EXIT</a> 
 
    </li> 
 
    </ul> 
 
</div>

jsfiddleへのリンクを追加しました。

答えて

0

最初に欠けているのは、メニュー要素のhref属性です。あなたは、少なくとも「#」にそれらを設定しない場合は、それらをクリックするとページがリロードされ、そのため彼らは、クラスを持っていない私はあなた

に別のJSを書いた

セカンドの事を「クリック」

$(function(){ $(".menu a").click(function() { 
    $(".menu a").removeClass("clicked"); 
    $(this).addClass("clicked"); 
    }); 
}) 
+0

Danieleが答えに感謝します。だから私は#参照を設定すると、リンクは動作しません。 これは例でした。実際のメニューバーでは、PHPスクリプトでhrefを取得しました。 のように href = "script1.php" と各スクリプトは上記のヘッダで始まります。 クリックするたびにPHPスクリプトが実行され、メニューバーがリロードされます。 クリックしたアイテムの背景を変更するのは間違っていますか? –

+0

はい、そうです。アクティブなクラス(クリックされたクラス)を設定する場合は、新しいページがロードされた後にクラスを設定する必要があります。あなたはそれを行うことができる方法がたくさんあります。クライアント側またはサーバー側 –

関連する問題