我有这个HTML作为进度计:
<div class="col-md-3" style="margin-left: -20px;">
<div class="progress-pos active" id="progess-1">
<div class="progress-pos-inner">
Login
</div>
</div>
</div>
<div class="col-md-3 progress-pos-container">
<div class="progress-pos" id="progess-2">
<div class="progress-pos-inner">
Scan Items
</div>
</div>
</div>
<div class="col-md-3 progress-pos-container">
<div class="progress-pos" id="progess-3">
<div class="progress-pos-inner">
Confirm Address
</div>
</div>
</div>
<div class="col-md-3 progress-pos-container">
<div class="progress-pos" id="progess-4">
<div class="progress-pos-inner">
Finished
</div>
</div>
</div> 我使用下面的jQuery添加/删除类,具体取决于URL。
$( document ).ready(function() {
if(location.search == "?route=account/login&SSL"){
$("#progess-1").addClass("active");
}
if(location.search == "?route=checkout/cart"){
$("#progess-2").addClass("active");
$("#progess-1").addClass("inactive");
}
if(location.search == "?route=checkout/checkout"){
$("#progess-3").addClass("active");
$("#progess-1").addClass("inactive");
$("#progess-2").addClass("inactive");
}
if(location.search == "?route=checkout/success"){
$("#progess-4").addClass("active");
$("#progess-1").addClass("inactive");
$("#progess-2").addClass("inactive");
$("#progess-3").addClass("inactive");
}
});我知道这并不是最好的方法(尽管代码确实有效),因为我不得不一遍又一遍地重复相同的事情。我试过prev(),但它似乎不起作用。
做这件事最好的方法是什么?
编辑:为了清楚起见,除了带有active类的元素之外,并不是所有元素都应该被赋予active类,只是前面的类。
编辑2:
目前的活动:
用户在页面?route=account/login&SSL上,#progress-1是给类.active。
用户成功地进入了?route=checkout/cart,#progress-1被赋予.inactive类,#progress-2是.active类。
用户成功地进入了?route=checkout/checkout,#progress-1和#progress-2被赋予了.inactive和#progress-3是.active等类。
发布于 2016-02-08 13:34:54
$( document ).ready(function() {
// Re-set all on entry
$("#progess-1, #progess-2, #progess-3, #progress-4").removeClass("inactive active");
// Then check for the correct one to make active
if(location.search == "?route=account/login&SSL")
$("#progess-1").addClass("active");
else if(location.search == "?route=checkout/cart")
{
$("#progess-2").addClass("active");
$("#progess-1").addClass("inactive");
}
else if(location.search == "?route=checkout/checkout")
{
$("#progess-3").addClass("active");
$("#progess-1,#progess-2").addClass("inactive");
}
else if(location.search == "?route=checkout/success")
{
$("#progess-4").addClass("active");
$("#progess-1,#progess-2,#progess-3").addClass("inactive");
}
});也可以通过用开关替换if语句来实现这一点。
https://stackoverflow.com/questions/35270573
复制相似问题