2010-06-18 223 views
0

我需要一个脚本,在点击带有帖子ID的链接时,在ID为.sideboxtopleft的div中的类的末尾添加2。jquery添加和删除类?

<script> 
    $(".posts").click(function() { 
     if ($('.sideboxtopleft').is('#sideboxtopleft2')) { 
      $('.sideboxtopleft').removeClass('2'); 
     } 
     else{ 
      $('.sideboxtopleft').addClass('2'); 
     } 
    }); 
</script> 

<div id="sideboxtopleft" class="sideboxtopleft"> 
<a href="#post" id="posts"><h3>RECENT POSTS <div id="arrow" class="arrow"></div></h3></a> 
</div> 
<div id="sideboxtopright" class="sideboxtopright"> 
<a href="#comments" id="comments"><h3>RECENT COMMENTS <div id="arrow" class="arrow2"></div></h3></a> 
</div> 

然而,它似乎并不想正常工作。任何帮助?

+0

你知道类2(CSS“.2”)与ID sideboxtopleft2(CSS“#sideboxtopleft2”)无关,对吧?也许你只是想使用选择器:“#sideboxtopleft.2” - 同样,避免使用相同的类和ID名称,除非有*非常好的理由! – 2010-06-18 04:53:18

+0

你应该使用toggleClass – meo 2010-06-18 08:26:45

回答

2

则可以使用.toggleClass()这样做:

$(".posts").click(function() { 
    $('.sideboxtopleft, .sideboxtopleft2').toggleClass('sideboxtopleft sideboxtopleft2'); 
}); 

All of the class methods添加,删除或切换整个类,他们不追加/删除类名称的一部分。虽然上面的代码工作,这不是最理想的解决方案,在CSS多类选择可能是一个更好的办法,就像这样:

.sideboxtopleft { color: black; } 
.sideboxtopleft.on { color: red; } 

然后你可以只切换on类,如下:

$(".posts").click(function() { 
    $('.sideboxtopleft').toggleClass('on'); 
}); 
0

为什么不只是添加一个新的类来标记?

<div id='foo' class='sideboxtopleft two'>