如何使用Javascript或jQuery来简化它
How can I simplify this using Javascript or jQuery?
我有 4 个垂直滑动面板,我正在使用以下代码。有什么方法可以简化代码吗?
$(".sliding-panels").click(function() {
var n = $(this).attr("number");
$(".panel" + n).toggleClass("panel-active");
if (n == 1) {
$(".panel2").toggleClass("panel-push-right");
$(".panel3").toggleClass("panel-push-right");
$(".panel4").toggleClass("panel-push-right");
}
else if (n == 2) {
$(".panel1").toggleClass("panel-push-left");
$(".panel3").toggleClass("panel-push-right");
$(".panel4").toggleClass("panel-push-right");
}
else if (n == 3) {
$(".panel1").toggleClass("panel-push-left");
$(".panel2").toggleClass("panel-push-left");
$(".panel4").toggleClass("panel-push-right");
}
else if (n == 4) {
$(".panel1").toggleClass("panel-push-left");
$(".panel2").toggleClass("panel-push-left");
$(".panel3").toggleClass("panel-push-left");
}
});
如何将 if
语句替换为:
var i, toggle_class;
for (i = 1; i <= 4; ++i) {
if (i === n) { toggle_class = "panel-active"; }
else if (i < n) { toggle_class = "panel-push-left"; }
else /* i > n */ { toggle_class = "panel-push-right"; }
$(".panel" + i ).toggleClass(toggle_class);
}
这可能有点牵强,但假设所有元素都有相同的类(甚至可能是.sliding-panels
?)并且是有序的,即
<div class="panel1"></div>
<div class="panel2"></div>
<div class="panel3"></div>
...
你可以做:
var $panels = $(".sliding-panels").click(function() {
var n = $(this).attr("number") - 1;
$panels.toggleClass(function(index) {
return index === n ?
'panel-active' :
(index < n ? 'panel-push-left' : 'panel-push-right');
});
});
让 jQuery 处理元素遍历。
相关文章:
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- 如何在jquery中使用实时计算求和值
- 在jQuery中使用$('body').html('')意味着什么
- 在Jquery中使用变量作为对象名称
- 如何将while循环中生成的值存储到变量中,以便以后在JQuery中使用
- jquery无法使用无限滚动
- 将FormParams与Jersey和jQuery一起使用
- jQuery UI使用json文件自动完成
- SlideDown()不会'不能在jQuery中使用After()
- 在JQuery中使用谷歌地图Api事件/侦听器
- jQuery字符串使用split()方法在空格后拆分字符串
- 自动完成jquery;t使用ngmodel和ngrepeat(angular)
- 在jquery中使用css获取背景值
- jQuery idTabs-使用鼠标悬停自动更改和淡入淡出
- Javascript:在jQuery中使用xpath
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 在 for 循环 jQuery 中使用 one()
- Jquery/Javascript使用IF/ELSE语句更改img SRC
- jQuery动态使用.append()添加输入,但发布表单不是追加数据
- 存储数据的最佳方式是什么,以便与jquery一起使用