1

我正在构建一个带有小(基于cookie)选项卡部分的站点,其中包括一个AJAX 天气小部件。我知道我的问题是 AJAX 内容仅在开始时加载,其余选项卡在单击时不会触发事件。我发现了很多解决方案,从使用负载、缓存、url hrefs、id hrefs 等,但在每种情况下,我在尝试实现时都会弄乱语法。我不确定哪种解决方案适用于我(任何/全部?)。这看起来很简单,但我想我已经盯着这个太久了。

这是我的标签html:

        <div id="profileTabList" class="tabs">
        <a href="#toronto">Toronto</a>
        <a href="#montreal">Montreal</a>
        <a href="#calgary">Calgary</a>
        <a href="#vancouver">Vancouver</a>
        </div>

        <div class="hr"></div>

        <div id="profileTabData" class="both">

            <div id="toronto" class="tab_content">
                <div class="left">
                <div class="ws-widget"><span class="ws-location">Toronto, Canada</span></div>
                </div>
                <div class="right">
                <div class="ws-widget"><span class="ws-location">Moscow, Russia</span></div>
                </div>
            </div>

            <div id="montreal" class="tab_content">
                <div class="left">
                <div class="ws-widget"><span class="ws-location">Montreal, Canada</span></div>
                </div>
                <div class="right">
                <div id="cbc-montreal"></div>
                </div>
            </div>

            <div id="calgary" class="tab_content">
                <div class="left">
                <div class="ws-widget"><span class="ws-location">Calgary, Canada</span></div>
                </div>
                <div class="right">
                <div id="cbc-calgary"></div>
                </div>
            </div>

            <div id="vancouver" class="tab_content">
                <div class="left">
                <div class="ws-widget"><span class="ws-location">Vancouver, Canada</span></div>
                </div>
                <div class="right">
                <div id="cbc-bc"></div>
                </div>
            </div>

        </div>

我正在使用基于 cookie 的 jquery-tabs.js:

$(function(){

function HashTabs(){
    var Cookie = $.cookie("offices");
    var activeTab = '';
    var navIndex = '';
    $('.tab_content').hide();

    if(!Cookie){
        $(".tabs a:first").addClass("active").show();
        $(".tab_content:first").show();

    } else if (Cookie != "") {
        $('.tabs > a:eq('+ Cookie +')').addClass('active').next().show();
        activeTab = $('.tabs > a:eq('+ Cookie +')').attr("href");
        $(activeTab).fadeIn(0);
    }

    $(".tabs > a").click(function() {
        $(".tabs a").removeClass("active");
        $(this).addClass("active");
        navIndex = $('.tabs > a').index(this);
        $.cookie("offices", navIndex);
        $('.tab_content').hide();
        activeTab = $(this).attr("href");
        $(activeTab).fadeIn(0);
        return false;
    });
}

$('#profileTabList').each(function(){
    return HashTabs();
});

});

4

0 回答 0