添加/删除类onClick Jquery

问题描述:

我已经看过了如何获得用户单击更改类的链接,同时确保兄弟链接采用其原始类的一百万个示例。我对jQuery非常陌生,所以当我尝试这些不同的例子时,我承认我迷路了。这里是我的CSS:添加/删除类onClick Jquery

/*active link */ 
.current { 
color: #f48239; 
text-decoration: none; 
} 
/* inactive link*/ 
.link { 
    color: black; 
    text-decoration: none; 

} 

jQuery的功能,只显示对应于该链接的DIV内容被点击:

$(document).ready(function(){ 
    $('a').click(function() { 
    var divname= this.name; 
    $("#"+divname).show("fast").siblings().hide("fast"); 

    }); 

    }); 

而现在的HTML:

 <div id="left"> 
      <UL><h2>DBACO Projects</h2></UL> 
        <div id="headerspace"> 
        </div>    
      <UL ID="links"><LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="QualcommInfo">QUALCOMM BUILDING M PROJECTS</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="StFrancisInfo">ST FRANCIS OF ASSISI CATHOLIC &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMUNITY-PHASE 1</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="YumaInfo">YUMA PIVOT POINT HOTEL AND &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFERENCE CENTER</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="RealtyInfo">REALTY INCOME CORPORATE &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HEADQUARTERS</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="CenterCityInfo">CENTER CITY MARRIOTT</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="PalmInfo">PALM MOUNTAIN RESORT</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="TrailsInfo">THE TRAILS AT PALM SPRINGS</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="OtayInfo">OTAY LOGISTICS CENTER</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="CabrilloInfo">CABRILLO MEDICAL OFFICE BUILDING</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="NorthgateInfo">NORTHGATE COMMUNITY CHURCH</A></h6></LI><BR> 
      <LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="LomaInfo">LOMA ALTA VILLAGE MOB</A></h6></LI></UL> 
     </div> 

任何的想法如何获得点击的链接采取“当前”的类,同时确保所有其他链接留在类“链接”将不胜感激。

+4

呃... CAPS !!!! – elclanrs 2012-04-20 01:41:38

+0

可以显示你的div吗? – 2012-04-20 01:44:28

+0

我不明白。您是否试图隐藏并显示内容或更改对象上的CSS类名称,以便不同的CSS可以起作用? – jfriend00 2012-04-20 01:44:55

$(document).ready(function() { 
    var $links = $('a'); 
    $links.click(function() { 
     $links.removeClass('current').addClass('link'); 
     $(this).removeClass('link').addClass('current'); 

     var divname= this.name; 
     $("#"+divname).show("fast").siblings().hide("fast"); 
    }); 
}); 
+0

谢谢大家的回复。 MДΓΓБДLL,你的回答完美无缺。 DIV的隐藏是有效的,但是课堂的变化并不是。再次感谢您的答复和帮助! – user1345405 2012-04-20 10:18:32

在这里你去http://jsfiddle.net/gHWWX/4/

$(document).ready(function(){ 
    $('a').click(function() { 
     $('a').removeClass('current').addClass('link'); 
     $(this).removeClass('link').addClass('current'); 
     var divname= this.name; 
     $("#"+divname).show("fast").siblings().hide("fast"); 
    }); 
});​ 

小修改

+0

这是相当糟糕,风格明智。 – 2012-04-20 01:44:57

+0

你做了同样的事情,你只需在同一行上添加和删除类的功能,并且你从'a'标签中创建了一个集合。 – user1289347 2012-04-20 01:50:00

+1

而且,这两项变化使得它更有效率。您每重复点击一次,都会重建页面中所有链接的列表。他正在使用预建列表。这是一个有意义的区别。链接的优点在于,您不会一遍又一遍重新评估选择器。 – jfriend00 2012-04-20 02:04:42

我建议做这种方式:http://jsfiddle.net/3SR7E/

CSS:

.link.current { 
color: #f48239; 

} 
.link { 
color: black; 
text-decoration: none; 

} 

javascript:

$(document).ready(function(){ 
$('a').click(function() { 
var divname= this.name; 
$("#"+divname).show("fast").siblings().hide("fast"); 
$("#links li a").removeClass("current");    
    $(this).addClass("current"); 

}); 

}); 

我不知道你为什么应用“显示”和“隐藏”,但这可能是你想要的。

$(document).ready(function(){ 
    $('a').click(function() { 
     $(this) 
      .removeClass("link") 
      .addClass("current") 
      .siblings("a").removeClass("current"); 
    }); 
}); 

代码只改变css类。

希望它有帮助。

+0

Soe Moe,显示/隐藏只在页面右侧显示一格内容(我没有显示代码)。这工作正常,但我需要改变当时处于活动状态的类,因为它是链接到同一页面的正常活动似乎不起作用。看起来你的工作也会如此。谢谢您的回复! – user1345405 2012-04-20 10:19:58