0

ユーザーがいるページを決定し、現在のページでクリックすると div タグを表示する別のコマンドをそのリンクに与えるナビゲーションを構築しようとしています。例: ホームページをクリックしてホームページに移動します。ホームページにいるときにホームをもう一度クリックすると、div タグがフェードインします。div タグは機能していますが、タグに複数のコマンドを適用する方法がわかりません。サイトをさらに更新する必要がある場合に備えて、ナビゲーションをサイト全体のインクルードにしたい. 現在、各ページに個別のナビゲーションがあります。

4

3 に答える 3

2

$_SERVER['REQUEST_URI']PHP では、値 inおよび関連するエントリを使用して、要求されたページについて知ることができます。

次に、現在のページを決定し、要求されたページに応じてメニューの表示を変更できます。

これにより、ページ構造内のどこに配置されているかに関係なく、多くの異なるファイルからメニュー テンプレートを含めることができます。

ここに、提案されPHP_SELFたエントリと非ディレクトリ構造を含む短い例を示します。

<?php

    $currentPage = basename($_SERVER["PHP_SELF"]);

    /** define the menu **/
    $menu = array(
        array('index.php', 'home');
    );

    /** process the menu **/    
    foreach ($menu as &$entry) {
        list($page, $name) = $entry;
        $isCurrent = $currentPage === $page;
        if ($isCurrent) {                
            $href  = '#';
            $extra = ' onclick="MM_effectAppearFade(display, 2500, 0, 100, true)"';
        } else {
            $href  = $page;
            $extra = '';
        }
        $entry = array_merge($entry, array($href, $extra));
    }
    unset($entry);

    /** output the menu **/
?>
<ul>
    <?php foreach($menu as $entry) { ?>
        <li>
            <?php
                list($page, $name, $href, $extra) = $entry;
                printf(
                    '<a href="%s"%s>%s</a></li>', 
                    $href, $extra, htmlspecialchars($name)
                );
             ?>
        </li>
    <?php } ?>
</ul>
于 2012-10-17T13:37:38.187 に答える
0

同じページのonclickにjqueryhidediv関数を配置するだけです(ロジックを試してください)

@ホームページ->(クリックしてホームページを非表示にするコードを入力)

@ MYPAGEページ->(クリックでMYPAGE DIVを非表示にするコードを入力)

于 2012-10-17T13:40:37.943 に答える
0

タグに複数のコマンドを適用する

onlick要素で属性を使用していると思います。そうしないでください。別のスクリプトから任意のイベント ハンドラーを割り当てます。必要な数のイベントをエレメントにバインドできます (また、必要な数のイベントへのコールバックもバインドできます)。

jQuery の例:

jQuery( '#menu a' ).on( 'click', function( event ) {
    if( event.target.attr( 'href' ) == window.location ) {
        event.preventDefault();
        jQuery( '#specialDivPopup' ).show();
    }
} );
于 2012-10-17T13:39:22.013 に答える