1

外部の特定のタブにリンクしようとしています。私が使用しているスクリプトでは、URL にどのタブ アンカーが含まれていても、常にタブ 1 に移動します。URL で Google アナリティクスのタグ付けを使用すると、スクリプトでパラメーターの後のすべてを無視するように指示されていても、タブ 1 にしか移動しません。次の URL を使用してタブにリンクしています - http://www.mysite.com/myshorturl#tabs-6?utm_source=campaign_detail&utm_medium=email&utm_campaign=my_campaign

パラメータとその後のすべてを無視して、正しいタブにリンクする必要があります。GA タグ付けを使用しない場合、スクリプトは期待どおりに機能します。

HTML:

<div id="tabs">
    <ul id="tab-ul">
        <li class="class1"><a class="scroll" id="tab-1" href="#tabs-1"></a></li>
        <li class="class2"><a class="scroll" id="tab-2" href="#tabs-2"></a></li>
        <li class="class3"><a class="scroll" id="tab-3" href="#tabs-3"></a></li>
        <li class="class4"><a class="scroll" id="tab-4" href="#tabs-4"></a></li>
        <li class="class5"><a class="scroll" id="tab-5" href="#tabs-5"></a></li>
        <li class="class6"><a class="scroll" id="tab-6" href="#tabs-6"></a></li>
    </ul>
<div id="tabs-1"></div>
<div id="tabs-2"></div>
<div id="tabs-3"></div>
<div id="tabs-4"></div>
<div id="tabs-5"></div>
<div id="tabs-6"></div>

Jクエリ:

$(function () {
    // run the jquery ui plugin
    $('#tabs').tabs();

    $("#tabs").tabs({
        select: function(event, ui) {                   
            window.location.hash = ui.tab.hash;
        }
    });
});

$(window).bind("load", function () {
    var CleanURL = window.location.href.split("?")[1];
    var urlHash = CleanURL.split("#")[1];
    $('html,body').animate({ 
        scrollTop: $('a[href="#' + urlHash + '"]').offset().top -40}, 300);
    });
4

1 に答える 1

1

問題は、URL フラグメント (#値) が URL の最後、クエリ文字列の後に来る必要があるためです。

http://www.mysite.com/myshorturl?utm_source=campaign_detail&utm_medium=email&utm_campaign=my_campaign#tabs-6

于 2013-11-14T09:48:08.827 に答える