jQuery:以最佳方式根据URL添加类
jQuery: Add class depending on URL in the best way
>我有这个用于进度表的 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
等等。
$( 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 语句替换为开关来实现。
相关文章:
- 如何在所有ajax调用中向URL添加参数
- 将URL添加到Javascript中
- 向 URL 添加额外的变量
- 浏览器向url添加一些数字
- Angular ui路由器向url添加哈希
- Highcharts将url添加到柱形图
- 在AngularJs中动态地将url添加到脚本标记中
- 将 URL 添加到浏览器后退按钮
- 使用 PhoneGap 在运行时将 URL 添加到 iPhone 中 cordova.plist 文件中的白名单中
- addClass 不起作用,尝试根据 URL 添加类
- 如何使用 Angular.js/Javascript 为 url 添加输入字段验证
- 如何阻止任何滑块向 URL 添加哈希标签
- 为与第一段匹配的任何 URL 添加活动类
- 使用 jsZip 将图像从 url 添加到 zip 文件
- 使用 JavaScript 或 jQuery 如何在页面加载后向 URL 添加参数
- jQuery:以最佳方式根据URL添加类
- 根据 URL 添加类 - 在主页上不起作用
- 替换并向 URL 添加 3 个不同的参数
- Div 叠加层淡入历史记录,并可使用哈希 URL 添加书签
- 如何将已上传的图像的 URL 添加到 Dropzone