2012-01-14 9 views
0

タブ付きコンテンツに2つの問題があります。jQuery:クラスをタブに追加し、クリックするとウィンドウの先頭に移動しない

は1.How私は自分のコードを使用して現在のタブをハイライト表示になります。

http://jsfiddle.net/FznTg/2/

2.I'veはfalseを返し追加しましたが、あなたはメニューをクリックしたとき、それはまだページのトップに行きます項目(これを参照するには、表示ウィンドウのサイズを変更して、タブをクリックし、再び

:。。http://jsfiddle.net/FznTg/2/

本当に誰かが助けることができると思います

+0

それは今動作しています!私はそれが永遠になるだろうと確信しています、私は解決が完了したら、問題はありません投稿することができます:) – CodeyMonkey

答えて

1

.show()または古いコンテンツの.hide()の前に新しいコンテンツを置くことでスクロールの問題を解決できます。これにより、スクロール位置がリセットされるので、スクロールが不要になるほどドキュメントが小さくなることはありません。デモここで働く

 //fix 
    if (jQuery.browser.msie && jQuery.browser.version.substr(0,3) == "6.0") { 
     jQuery('.tabcontent#' + stringref).show(); 
    } else { 
     //display our tab fading it in 
     jQuery('.tabcontent#' + stringref).fadeIn(); 
    }  

    //hide the tabs that doesn't match the ID 
    jQuery('.tabcontent:not(#'+stringref+')').hide(); 

ので、この順に入れてhttp://jsfiddle.net/jfriend00/E8Jgd/

現在のタブのスタイルを設定するために、あなただけの現在のタブにクラスを追加すべきことができますCSSを使用してスタイルを設定します。あなたのクリックハンドラでこの行を置くこと=「現在の」クラスを持っていると、他のタブからそのクラスを削除するには、現在のタブを設定します:

jQuery(this).closest("li").addClass("current").siblings().removeClass("current"); 

あなたは、このようなCSSでそれをスタイリングすることができます

.hometabs li.current a {color:red;} 

そして、あなたはよりデフォルトで最初のタブのためのHTMLにクラスを追加することができます

<li class="current"><a href="#tab1">All</a></li> 

デモここに:http://jsfiddle.net/jfriend00/E8Jgd/

+0

両方の問題のためのソリューションが追加されました。 – jfriend00

+0

はい、これは素敵に働きました、ありがとうございます:) – CodeyMonkey

関連する問題