添加/删除类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 COMMUNITY-PHASE 1</A></h6></LI><BR>
<LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="YumaInfo">YUMA PIVOT POINT HOTEL AND CONFERENCE CENTER</A></h6></LI><BR>
<LI><h6 style="display: inline;"><A class="link" HREF="#" NAME="RealtyInfo">REALTY INCOME CORPORATE 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>
任何的想法如何获得点击的链接采取“当前”的类,同时确保所有其他链接留在类“链接”将不胜感激。
$(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");
});
});
谢谢大家的回复。 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");
});
});
小修改
这是相当糟糕,风格明智。 – 2012-04-20 01:44:57
你做了同样的事情,你只需在同一行上添加和删除类的功能,并且你从'a'标签中创建了一个集合。 – user1289347 2012-04-20 01:50:00
而且,这两项变化使得它更有效率。您每重复点击一次,都会重建页面中所有链接的列表。他正在使用预建列表。这是一个有意义的区别。链接的优点在于,您不会一遍又一遍重新评估选择器。 – 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类。
希望它有帮助。
Soe Moe,显示/隐藏只在页面右侧显示一格内容(我没有显示代码)。这工作正常,但我需要改变当时处于活动状态的类,因为它是链接到同一页面的正常活动似乎不起作用。看起来你的工作也会如此。谢谢您的回复! – user1345405 2012-04-20 10:19:58
呃... CAPS !!!! – elclanrs 2012-04-20 01:41:38
可以显示你的div吗? – 2012-04-20 01:44:28
我不明白。您是否试图隐藏并显示内容或更改对象上的CSS类名称,以便不同的CSS可以起作用? – jfriend00 2012-04-20 01:44:55