1

クラスの値を変更しようとすると問題が発生します。私は以下を持っています:

私の HTML。これはメニューです:

<ul class="nav">
<li class="active">
<a href="home.php">Inicio</a>
</li>
<li>
<a href="correspondencia.php">Entrada</a>
</li>
</ul>

私のJQuery

$(document).ready(function(){
    $('ul.nav li').click(function() {    
    $('ul.nav li').removeClass('active');
    $(this).addClass('active');
    });
});

Inicioからアクティブなクラスを削除し、アクティブなクラスをEntradaに追加したいのですが、クリックしても変更されません。

何が問題なのかわからない。

4

2 に答える 2

1

使用する必要があります$().on('click', function() {});: http://api.jquery.com/on/

$(document).ready(function(){
    // Here us on
    $('ul.nav a').on('click', function(e) {
        // Do not go to the page ? 
        e.preventDefault() ;
        // Select only the active one (was not a problem but is proper)
        $('ul.nav .active').removeClass('active');
        $(this).parent().addClass('active');
    });
});

編集:a要素のクリックを聞いてください。それは良いです。例を更新しました。 編集 2:ここに jsFiddle があります: http://jsfiddle.net/KdaHh/ 編集 3: Mickael コメントのおかげで間違った仮定を削除しました。

于 2012-12-06T00:36:26.357 に答える
0

Jqueryを使っていたと思います。
これをチェックしてください http://api.jquery.com/parent/

$(document).ready( function(){
   $('a').click(function(){
       $('a').parent().removeClass('active');
       $(this).parent().attr('class', 'active');
   }
});


このコード スニペット

$('a').parent().removeClass('active');

activeアンカータグからすべてのクラスを削除するだけliで、以下のスニペットはactive現在のクリックにクラスを追加します

$(this).parent().attr('class', 'active');
于 2012-12-06T01:11:39.230 に答える