0

クリックするとリンクの色が変わる関数を Jquery で作成しました... リンクを #(ハッシュ) にリンクするとコードは正常に動作しますが、それを php と混ぜると動作しませんか?

これは正常に動作している私の PHP です。

<?php
    $pages_dir = 'pages';
    if (!empty($_GET['p'])) {
        $pages = scandir($pages_dir, 0);
        unset($pages[0], $pages[1]);
        $p = $_GET['p'];
        if (in_array($p.'.inc.php', $pages)) {
            include($pages_dir.'/'.$p.'.inc.php');
        } else {
            echo '******.';
        }
    } else {
        include($pages_dir.'/hjem.inc.php');
    }
?>

そして、私のHTMLのリンクもうまく機能しています:

href="index.php?p=*********"

しかし今、リンクの背景色を OnClick 効果で別の色にする効果を適用したい:

$(document).ready(function(){
        var $targetElement = $("*** This is to my links ***");
        $targetElement.click(function() {
            $targetElement.removeClass("changeColor")
            $(this).addClass("changeColor");
    });
});

そしていくつかのcss:

#****** ul li a:link.changeColor{
    background-color:black;
}

Jquery は、# へのリンクを href している場合にのみ機能し、もちろん私の php コードでも機能するようにしたい :)

4

2 に答える 2

0

リンクをクリックすると、ブラウザはリンクのhrefにリダイレクトします。

2つのオプションがあります:

1)すべてはAJAXによって行われます-要求されたページのコンテンツをajaxでロードしてから、クリックイベントの伝播を停止するため、ブラウザーはリダイレクトしません。これは、イベントハンドラーから戻るfalseか、を呼び出すことで実行できますe.preventDefault()

2)CSSを使用する:

ul li a:active {
    background-color:black;
} 
于 2013-01-15T08:02:47.580 に答える
0

アンカー要素のデフォルト イベントを防止するため、次のように変更します。

$targetElement.click(function() {
  $targetElement.removeClass("changeColor")
  $(this).addClass("changeColor");
});

$targetElement.click(function(e) {
   e.preventDefault(); 
   //get href tag and load content
   var $this = $(this), href = $this.attr("href"), $that = $this;
   $("#someElementId").load(href, function() {
       $targetElement.removeClass("changeColor")
       $that.addClass("changeColor");
   });
});

このようなことを意味しますか

于 2013-01-15T08:01:31.687 に答える