0

私はjqueryを少し試していて、Googleで過去1日間解決しようとしてきた大きな問題を抱えていますが、それを理解する方法がわかりません.

簡単なphpスクリプトを含むindex.phpページを使用して、データベースからコンテンツを取得しますindex.php?title=abou.t(例)のようなリンクを使用します。クリックしたクラスにアクティブなクラスを追加する小さな jquery スクリプトを見つけました<li>。これは、URL が ( #about) の場合に完全に機能し、他のリンクがクリックされるまでクラスをアクティブに保ちます。ただし、「」のような URL の場合index.php?title=about、アクティブなクラスが削除されます。

これは私のcss / htmlとjqueryです。私の質問は、クリックされたときにボタンをアクティブに保つ方法です。

    <style type="text/css"> 
    .nav li { list-style: none; cursor:pointer; }
    .nav li a { display: block; width: 279px; height: 30px;}
    .nav-home { background: url(img/home.png); width: 279px; height: 27px; }
    .nav-home.active, .nav-home:hover { background: url(img/home_1.png); width: 279px;          height: 27px;}
    .nav-video { background: url(img/video.png); width: 279px; height: 27px; }
    .nav-video.active, .nav-video:hover { background: url(img/video_1.png); width: 279px; height: 27px;}
    .nav-contact { background: url(img/contact.png); width: 279px; height: 27px; }
    .nav-contact.active, .nav-contact:hover { background: url(img/contact_1.png); width: 279px; height: 27px;}
    </style> 

html と jquery:

    <ul class="nav">
    <li class="nav-home"><a href="index.php?title=home"></a></li>
    <li class="nav-video"><a href="index.php?title=video"></a></li>
    <li class="nav-contact"><a href="index.php?title=contact"></a></li>
    </ul>
    <script type="text/javascript">
    $('.nav li').click( function() {
    $(this).addClass('active').siblings().removeClass('active');
    });
    </script>

よろしくお願いします。

4

3 に答える 3

0

前にこのphpコードを追加してみてください$(".nav li").click(

<?php
    if(!empty($_GET["title"]) ) {
    ?>
    $(".nav-"+$_GET["title"])
    .addClass('active')
    .siblings()
    .removeClass('active');
<?}?>
于 2012-09-26T11:36:26.100 に答える
0

Moonwave99 が正しいです。これを行うには、2 つの可能性があります。1) 3 ページのコンテンツを 1 つのページに配置する必要があり、show() を使用して jquery 関数を非表示にするか、(ブロック、なし) プロパティを表示するだけです。 . 2) サーバーにリクエストを送信している間、クエリ文字列でタイトルを送信しています。このクエリ文字列によって、必要な場所で「アクティブ」なクラス名を確認して指定する必要があります。

eg:  

request URL: -url-?title=a

<a href='url?title=a' <?php if($_GET['title'] == 'a') echo 'active';?>>a</a>
<b href='url?title=b'>b</b>
<c href='url?title=c'>c</c>
于 2012-09-26T11:34:29.950 に答える
0

新しいページをロードすると、以前のクライアント側の対話を追跡できなくなります。

php でクラスをactive指定するか、 current を解析し、値をwindow.location取得して、これに従って要素を選択する必要があります。title<li>

于 2012-09-26T11:27:05.970 に答える