2012-02-15 2 views
0

jQueryのページ内タブナビゲーションシステムを実装した後で、ページ名を再定義する方法に問題があります。そのため、メインナビゲーションで「アクティブ」なスタイルにすることができます。PHPページ名変数+ jQuery

私が使用します。

<?php $var_page_name = 'example.php'; ?> 

正しいページ名に置き換え例で、私のウェブサイト上の各ページ名を定義します。

私は、CSSを使用して定義されたアクティブなクラスで、ナビゲーションで「アクティブ」ページのスタイルを次のようにします。

<?php global $var_page_name; ?> 
<ul> 
<li><a<? if($var_page_name == 'index.php') print ' class="active"'; ?> href="index.php">web design</a></li> 
</ul> 
素晴らしい作品

。ナビゲーション用のページ内のjQueryタブピングソリューションを追加しました。どちらもうまくいく。

しかし、タブの1つをクリックして新しいコンテンツdivに行くと、ページ名が変更されたように見えるので、正しいメインナビゲーション項目はアクティブではないと考えられます。 urlはhttp://www.example.com/index.php#として読み込み、私は読むために私のアクティブなページのナビゲーション変数を変更する場合:

<a<? if($var_page_name == 'index.php' || $var_page_name == 'index.php#') print ' class="active"'; ?> 

またはタブで使用されているのdivのidを試してみてください。

<a<? if($var_page_name == 'index.php' || $var_page_name == 'index.php#content_2') print ' class="active"'; ?> 

それは修正されません。問題。助言がありますか?間違って

+0

$ var_page_nameを明示的に定義していますか、または実際のページ名を取得する関数を使用して生成していますか? –

答えて

0

<?php $var_page_name = 'example.php'; ?>

。それはあなたのタブスクリプトのバグだハッシュがデフォルト

1

によってサーバーに送信されていないことに注意してください

<?php 
$exploded = explode($_SERVER['REQUEST_URI']); 
<a href="/page/" class="<?php echo ($exploded[1] == "page") ? "active" : ""; ?>">Page</a> 

のようなものを使用してください。

タブをクリックすると、上部のナビにある<a>の「アクティブ」クラスが削除されますが、<a>はタブではありません。

変更行:

// switch all tabs off 
$(".active").removeClass("active"); 

へ:

$(".tabs .active").removeClass("active"); 

や、あなたのタブの代わりに、ページ内のすべての要素から「アクティブ」クラスを削除したものと同様のもの。

0

問題は、PHPコードよりもページのjqueryコードに関連していると思います。 JSヘッダーコードを確認する、私が見つかりましたこの:

// When a link is clicked  
$("a.tab").click(function() {        
    // switch all tabs off    
    $(".active").removeClass("active"); 
    ... 
}); 

『NAV』セクションにあるものも含めて、全体のページ内のすべての「.active」クラスをクリアしているセレクタ「a.tab」に結合クリック(タブの上にあります)。この行をCHANGIN
試してみてください。これに

$(".active").removeClass("active"); 

$("#tabbed_box_1").find(".active").removeClass("active"); 

それを行う必要があります。