使无休止的jQuery简短而简单
Make an endless jQuery short and easy
我的WordPress网站上有一个手风琴。
通常它工作正常,在单击不同的选项卡时添加和删除类,但是网站上的一个手风琴存在问题:单击其中一个选项卡时 - 它不会关闭其余打开的选项卡。所以我添加了这段代码,它工作正常:
jQuery(document).ready(function($) {
$("#top11").click(function() {
$("#collapse202").removeClass("in");
$("#collapse203").removeClass("in");
});
$("#top12").click(function() {
$("#collapse201").removeClass("in");
$("#collapse203").removeClass("in");
});
$("#top13").click(function() {
$("#collapse201").removeClass("in");
$("#collapse202").removeClass("in");
});
});
我相信有一种方法可以缩短它,有人可以解释一下如何让它更紧凑吗?
一种方法是向每个折叠的元素添加data-id
。例如:
<div id="collapse201" data-id="top11"></div>
<div id="collapse202" data-id="top12"></div>
<div id="collapse203" data-id="top13"></div>
当然,您应该在选项卡中使用一个类,以防手风琴中有很多选项卡:
<div id="top11" class="clickingTab"></div>
<div id="top12" class="clickingTab"></div>
<div id="top12" class="clickingTab"></div>
JS代码可能看起来像这样:
jQuery(document).ready(function($) {
$(".clickingTab").click(function() {
var clickedId = $(this).attr("id");
$("element:not([data-id="+clickedId+"])").removeClass("in");
});
});
当然,可能有更有效的方法来解决您的问题。但对于这个特定问题,这可能是特定的解决方案。
如果您的 HTML 看起来像这样,您可以使用 next()
函数来定位下一个同级元素:
$("#top11, #top12, #top13").click(function() {
$("#top11, #top12, #top13").next().removeClass("in");
$(this).next().addClass("in");
});
.in {
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="top11">top11</div>
<div id="collapse201" class="in">collapse201</div>
<div id="top12">top12</div>
<div id="collapse202" class="in">collapse202</div>
<div id="top13">top13</div>
<div id="collapse203" class="in">collapse203</div>
相关文章:
- 带有计数器、缩略图、进度条和淡入淡出效果的简单jQuery幻灯片
- 简单JQuery数组
- 用于wooccommerce的简单JQuery脚本不起作用
- jQuery 选择器中的简单 jQuery 语法和串联
- 简单jquery缩放插件中的中心图像
- 对使用 iframe 的简单 jquery 展开/折叠进行故障排除
- 为什么我的简单jQuery代码不适用于.css()方法
- 基于字符串搜索的简单jquery查找和显示无法使其工作
- 简单jQuery切换到$(“html,body”).css({“overflow”:“hidden”});当打开并且然后
- 简单JQuery淡入/淡出
- 如何动画化“;简单jquery过滤”;只使用css
- 关于内容的fadeIn/fadeOut效果的简单jQuery故障
- 简单JQuery代码-逻辑正确,但警报不正确;t弹出
- 梅西简单jQuery消息框
- 简单Jquery幻灯片不起作用
- 简单jQuery函数的结果值不会显示在my 'answer'跨度
- 简单jQuery表单验证:由于占位符polyfill,在ie9中检查empty.val()失败
- 简单jquery选择器脚本中出现意外行为
- 简单jQuery选项卡的问题
- 移动菜单的简单jQuery左/右滑动切换动画