3

私の Web サイトには、すべてのページで一貫して使用されるタブ付きのインターフェイスがあります。ベース ページ (最初のタブ) にリンクできますが、特定のタブにリンクする方法がわかりません。

これは私のJavaScriptです:

$(document).ready(function() {
  $(".tabs a").click(function() {
    var $this = $(this);
    $(".panel").hide();
    $(".tabs a.active").removeClass("active");
    $this.addClass("active").blur();
    var panel = $this.attr("href");
    $(panel).fadeIn(250);
    return false;
  });
$(".tabs li:first-of-type a").click();
});

そして、私の各ページは次のように設定されています。

<div id="aboutContainer">
    <ul class="tabs">
        <li><a href="#panel1">About Us</a></li>
        <li><a href="#panel2">Contact Us</a></li>
        <li><a href="#panel3">Mailing List</a></li>
        <li><a href="#panel4">Terms</a></li>
        <li><a href="#panel5">Privacy Policy</a></li>
        <li><a href="#panel6">Help</a></li>
    </ul>
        <div class="panelContainer">
            <div class="panel" id="panel1">
                <?php include('includes/aboutme.php'); ?>
            </div>

            <div class="panel" id="panel2">
                <?php include('includes/contact.php'); ?>
            </div>

            <div class="panel" id="panel3">
                <?php include('includes/mailinglist.php'); ?>
            </div>

            <div class="panel" id="panel4">
                <?php include('includes/terms.php'); ?>             
            </div>

            <div class="panel" id="panel5">
                <?php include('includes/privacypolicy.php'); ?>
            </div>

            <div class="panel" id="panel6">
                <?php include('includes/cheekyreference.php'); ?>
            </div>
        </div>
</div>

任意のポインタをいただければ幸いです。私は JavaScript にかなり慣れていないので、Web を検索しても答えを見つけることができませんでした。

物事を少し明確にするために:

about.php ページを表示している場合、タブ付きのインターフェイスが機能します。しかし、私が作成しようとしているリンクの種類は次のとおりです。別のページにいた場合、about ページの特定のタブにリンクしたいと思います。ナビゲーション フッターがあり、「メーリング リスト」や「連絡先」などのハイパーリンクをクリックして、正しいページと正しいタブを表示できるようにしたいと考えています。

4

4 に答える 4

1

たとえば、「条件」タブを明確にクリックしたい場合は、次のようにします。

$(".tabs a[href='#panel14']").click();

于 2012-04-26T16:49:53.467 に答える
1

これを実現する手法は、URL のハッシュ部分を使用することです。例えば:

about.php#panel1

または、同様に、ハッシュバングを使用します。

about.php#!panel1

(SEO に関心がある場合は、ハッシュバンを選択することをお勧めします。)

次に、URL のハッシュ部分を検出し、それに応じてタブをアクティブにするスクリプトをページに含める必要があります。

申し訳ありませんが、私はこれを常に行っていますが、公開されている例はありません。記事ができたら更新します。

jQuery では、次のようになります。

$(".tabs a[href="+window.location.hash+"]").click();

注: クエリ文字列を使用することもできますが、既にページにアクセスしている場合、ハッシュによってページの更新が妨げられます。

于 2012-04-26T19:11:32.183 に答える
0

これはやり過ぎかもしれませんが、クライアント サイト ルーティングを使用して実行できるはずです。

まず、アドレス バーの URL に基づいてアクティブ化される「ルート」を設定する必要があります。次に、次の形式のリンクを設定して、about の tab1 にリンクし、アクティブ化されたルートで適切なタブをアクティブにします (クリック イベントを発生させます)。そのタブで)。

JavaScriptルーティングを提供するjQueryプラグインへのリンクは次のとおりです

http://jsrouter.codeplex.com/

もちろん、他のルーティングソリューションがあります。これは、件名の javascriptクライアントサイドルーティング/パスライブラリに関するstackoverflow投稿へのリンクです

于 2012-04-26T19:01:28.353 に答える
0
$('a[href="#panel1"]').click(function() {
        //insert action here;
});​
于 2012-04-26T16:57:33.600 に答える