1

AJAX 天気ウィジェットを含む小さな (Cookie ベースの) タブ付きセクションを持つサイトを構築しています。私の問題は、AJAX コンテンツが最初にのみ読み込まれ、残りのタブをクリックしてもイベントが発生しないことです。ロード、キャッシュ、url href、id href などの使用に至るまで、多くの解決策を見つけましたが、いずれの場合も、実装しようとすると構文が台無しになります。どのソリューションが自分に適用できるかわかりません (一部/すべて?)。一見シンプルに見えますが、私はこれをあまりにも長い間見つめてきたと思います.

ここに私のタブの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>

私はクッキーベースの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