我在尝试更改类的值时遇到问题。 我有以下内容:
我的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 但是当我点击它时不会更改。
我不是什么问题。
答案 0 :(得分: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评论,删除了错误的假设。
答案 1 :(得分: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');