如果cookie = 1,我如何通过id淡入div?

时间:2011-04-11 21:41:09

标签: javascript jquery

我有一个标签很少的页面。 我正在寻找一种方法,如果你选择tab 5和cookie = 1,那么显示tab6否则显示tab5。

标签的代码是:

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;
});

我想要标签号5,如果点击并且cookie = 1则显示tab6。 如果cookie为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>

我希望你们能帮助我。 非常感谢&amp;问候, rallyboy。

3 个答案:

答案 0 :(得分: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;
});

这个额外的代码会快速检查 - 如果设置了cookie,它会切换5到6或6到5.然后它会正常进行。

对于标签5和标签6,您是否需要比此更通用的解决方案?如果是这样,你能否列出一些关于它应该如何运作的规则?

答案 1 :(得分: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;
});

答案 2 :(得分: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;
});