2

クリックされた場合、リンクの色を変更する必要があります。

色が永続的に適用されているのにリンクが機能しない場合、mod_rewrite を使用してすべての uri をこのvarにリダイレクトしてevent.preventDefault();いるため、uri が渡されず、使用できません。$_GET['route']$_GET^(.*)$ index.php?route=$1

event.preventDefault を使用しない場合、リンクは機能し、セクションは変更されますが、addClass はクリックしている間だけ適用され、その後消えます...

どうすれば両方の動作を取得できますか? URI (HREF) を渡すことができ、色を永続的に変更できonClickますか?

html:

<a href="./section">Section</a>

CSS:

.active { color: #f00; }

Jクエリ:

$('a').on('click', function(event) {
    //event.preventDefault
    $(this).addClass("active");
});
4

5 に答える 5

1

JavaScript を実行する必要はありません。次のCSSが必要です

a:visited { color: #f00; }

編集。<a>特定のリンクのみを強調表示する場合は、リンクにクラスを追加します。

HTML

<a class="sticky" href="./section">Section</a>

CSS

a.sticky:visited  { color: #f00; }

そうすれば、固定したいハイパーリンクだけに色が適用されます

于 2013-02-18T05:29:50.360 に答える
1

イベントdoc readyを指定する必要がない場合は、これを試すことができます。.click()

フィドルを試してみてください: http://jsfiddle.net/cmwt8/

$(function(){
    var url = window.location.href; // url should be this way 'http://aaa.com/page/section'
    var link = url.substr(url.lastIndexOf('/') + 1); // then you get here 'section'
    $('[href*="' + link + '"]').addClass("active"); // if found add the class
});
于 2013-02-18T06:02:09.520 に答える
0

使ってみて

    $('#elementID').on('click', function(event) {
        event.preventDefault();
        $(this).addClass("active");
        window.location.href="./section";
    });

そして、アンカータグの href を「#」に更新します。すなわち

<a href="#"
于 2013-02-18T05:26:43.737 に答える
0

ページにリダイレクトされた後なので、それを行うことはできません。すべてのオブジェクト クラスがリセットされます。

しかし、あなたはこれを置くことができます$(document).ready()

var page = window.location.pathname.split('/').pop();
$('a[href$="' + page + '"]').addClass('active');

これが何をするかは、あなたが持っているページ読み込みの例です

<a href="hello.php">test</a>

ページの読み込みとして。はpage、最後の URL ex を取得します。www.mysite.com/hello.php そして、意志に一致するURLを見つけて、a特定のクラスを追加します。

于 2013-02-18T05:29:09.170 に答える
0

クリックの自然な動作のため、これを行うことはできません。

これを使用するpreventDefault()と、自然な動作がルールに従って機能するように強制されます。

とにかく、まだいくつかの選択肢があります。

  1. $('a').on('click', function(event)
    {
        var href = $(this).attr('href');
        event.preventDefault
        $(this).addClass("active");
        window.location = href;
    });

この時点でリダイレクトが実行されるため、リンクの色が以前のクリック呼び出しで既に変更されているかどうかを取得する方法がないため、session役立ちます。

内部click eventで ajax 呼び出しを行い、設定session variableしたセッションのページ リダイレクト チェックの後に設定し、既に存在during ajax callする場合はクラスを追加します。session

于 2013-02-18T05:30:25.397 に答える