1

我在尝试更改类的值时遇到问题。我有以下内容:

我的 HTML。这是一个菜单:

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

我的查询

$(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类,下面的代码片段将类添加到当前点击liactive

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