2010-12-27 12 views
0

私は終日働いていますが、これを達成することはできません。これはナビゲーションタブをテーマにした非常に一般的な形式です。
私がやろうとしているのは、アクティブな(つまり選択されたタブ)の色を変更して、残りのタブをcssとjavascriptを使って通常のCSS設定に保つことです。私はFacebookのアプリケーションでそれをやろうとしています。
これはJavaScriptコード「活性」は以下のように上記のスクリプトが適用されたHTMLコードである(ここでは図示せず)、「変色CSS」
に関連付けられたIDであるfacebook(fbml)アプリケーションでアクティブなタブの色を変更してください。


function myFunction(element) {
var liArray = document.getElementById("menu").childNodes;
var i=0;
while(liArray[i]) {
liArray[i].id="";
i++; }
element.id="active";
}

あります。

<ul id="menu" class = "orange"> 
     <li onClick="myFunction(this);"><a href="#" clicktoshow="nav1" clicktohide="nav2,nav3">Home</a></li> 
     <li onClick="myFunction(this);"><a href="#" clicktoshow="nav2" clicktohide="nav1,nav3">Invite your friends</a></li> 
     <li onClick="myFunction(this);"><a href="#" clicktoshow="nav3" clicktohide="nav1,nav2">About</a></li> 
    </ul> 

しかし、機能しません。また、エラーを表示しません。助けてください

答えて

1

要素のIDを変更しないでください。どのように間違っているのですか、確かに良い考えではありません。

変更代わりclass:あなたは今#menu .active

#menu #active変更、それのようなものを持っているCSSでは、

function myFunction(element) { 
    //get all list items: 
    var liArray = document.getElementById("menu").getElementsByTagName("li"); 

    //make all items inactive 
    for (var i = 0; i < liArray.length; i++) 
     liArray[i].className = "inactive"; 

    //make clicked item active: 
    element.className = "active"; 
} 

関連する問題