【发布时间】:2013-11-18 09:26:55
【问题描述】:
看。我这里有以下 html <ul>-<li> 列表。
<ul class="nav">
<li class="active"><a href="#" id="home">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" id="about-us">About Us<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Who we are?</a></li>
<li><a href="#">What we stand for?</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" id="campaigns">Campaigns<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Get Involved</a></li>
</ul>
</li>
<li><a href="#" id="news">News</a></li>
<li><a href="#" id="donate">Donate</a></li>
</ul>
然后我有以下jquery代码
$("#about-us").click(function(){
$("ul.nav").children("li").children("a").css("background-color", "#0E0E0E");
$(this).css("background-color","#47F514");
});
$("#campaigns").click(function(){
$("ul.nav").children("li").children("a").css("background-color", "#0E0E0E");
$(this).css("background-color","#F2720A");
});
$("#news").click(function(){
$("ul.nav").children("li").children("a").css("background-color", "#0E0E0E");
$(this).css("background-color","#0A76F2");
});
$("#donate").click(function(){
$("ul.nav").children("li").children("a").css("background-color", "#0E0E0E");
$(this).css("background-color","#F7A116");
});
我可以看到$("ul.nav").children("li").children("a").css("background-color", "#0E0E0E") 行在很多行中重复出现。所以我当然可以把它拿出来并在每个点击事件中添加一个新函数来多次调用。
我应该怎么做才能重构这个?
【问题讨论】:
标签: javascript jquery html css