2011-04-11 6 views
0

私はいくつかのタブを持つページを持っています。 私は、あなたがタブ5とクッキー= 1を選択し、次にタブ6を表示し、そうでなければタブ5を表示する方法を探しています。cookie = 1の場合、idでdivをフェードインするにはどうすればよいですか?

タブのコードは次のとおりです。

jQuery(".tabs a").click(function() { 
    stringref = jQuery(this).attr("href").split('#')[1]; 
    jQuery('.tab_content:not(#' + stringref + ')').hide(); 
    jQuery('.tab_content#' + stringref).fadeIn(); 
    return false; 
}); 

tab6を表示するためにクリックしてクッキー= 1ならば、私は、タブの数5をしたいです。クッキーは、1またはnullの場合DIV5またはDIV6を示し コードは次のとおりです。私はそれらを一緒に追加するにはどうすればよい

alreadyClosed = $.cookie(stateCookieName); 

if (alreadyClosed != 1) { 
    $DIV5.show(); 
    $DIV6.hide(); 
} else { 
    $DIV5.hide(); 
    $DIV6.show(); 
} 

?私は、彼らが言うにする方法であるべきと仮定します。

If tab1.click and cookie = 1 then show $div1 
else tab1.click and cookie = null then show $div2 

のように体に見える:私は君たちが私を助けることができると思います

<!-- buttons --> 
<ul id="boxes" class="tabs"> 
<li><a href="#Div5">Div 5</a></li> 
<li><a href="#Div6">Div 6</a></li> 
</ul> 

<!-- content --> 
<div class="tab_content" id="Div5">DIV 5</div> 
<div class="tab_content" id="Div6">DIV 6</div> 

。 ありがとう、&よろしく、 rallyboy。

答えて

0

私はそれを最後に見つけました。私はこのクリック機能を次のように置き換えました:

var alreadyClosed = $.cookie(stateCookieName) == '1'; 
jQuery('ul.tabs a').click(function() { 
    var ref = jQuery(this).attr('href').split('#')[1]; 
    if (alreadyClosed && ref == 'Div5') { 
     ref = 'Div6'; 
    } 
    jQuery('div.tab_content:not(#' + ref + ')').hide(); 
    jQuery('#' + ref).fadeIn(); 
    return false; 
}); 
1
jQuery(".tabs a").click(function() { 
    alreadyClosed = $.cookie(stateCookieName); 

    stringref = jQuery(this).attr("href").split('#')[1]; 

    if(alreadyClosed == 1) 
    { 
     newstring = stringref; 
     if(stringref == "5") 
     { 
      newstring = "6"; 
     } 
     elseif(stringref == "6") 
     { 
      newstring = "5"; 
     } 
     stringref = newstring; 
    } 

    jQuery('.tab_content:not(#' + stringref + ')').hide(); 
    jQuery('.tab_content#' + stringref).fadeIn(); 
    return false; 
}); 

この追加コードはクイックチェックを行います。クッキーが設定されている場合は、5から6または6から5を切り替えます。

タブ5と6では、これよりも一般的な解決策が必要ですか?もしそうなら、あなたはそれがどのように正確に動作すべきかについていくつかのルールを定めることができますか?

+0

素晴らしい答えです。私はこの問題を3日後に解決しようと努めています。私はそれに非常に多くの時間を費やしました。とにかく、クッキーが1に設定されている場合、Tab6は表示されません。私が望むのは、cookie = 1の場合、tab5をクリックしてtab6を表示し、cookie = nullの場合はtab5をクリックすると、今のようにtab5が表示されます。 – jQuerybeast

+0

現時点ではクッキーがない場合は完全に動作しますが、クッキーを設定するとクッキーは設定されません。正確なページの簡単なフィドルがほしいと思ったら教えてください。あなたのコードに書いた5番と6番の問題だと思います。 #Div5と#Div6またはDiv5とDiv6で置き換えようとしましたが、うまくいきません。 – jQuerybeast

+0

私はこれを明日見て、それはあなたのために働くようになるでしょう。私はそれがかなり近いと確信しています。あなたのフィドルが助けになります。 –

0
jQuery(".tabs a").click(function() { 
    stringref = jQuery(this).attr("href").split('#')[1]; 

    // Normal navigation 
    if(stringref != 'div5') { 
     jQuery('.tab_content:not(#' + stringref + ')').hide(); 
     jQuery('.tab_content#' + stringref).fadeIn(); 
    } else { 
     // 5 is special, do further checking 
     var alreadyClosed = $.cookie(stateCookieName); 

     if (alreadyClosed != 1) { 
      $('div5').show(); 
      $('div6').hide(); 
     } else { 
      $('div5').hide(); 
      $('div6').show(); 
     }   
    } 

    return false; 
}); 
+0

ご返信ありがとうございます。もし私がクッキーを持っていれば、それはまだ選択されたタブを示しているようです。各タブはtab_contentクラスを持っていることを述べてください。私はここで簡単なフィドルを作った:http://jsfiddle.net/Nsgcn/それは実際にどのように見える。もう一度ありがとう – jQuerybeast

関連する問題