javascript - jQuery点击标签打开和关闭

标签 javascript jquery html

我有一些选项卡用作导航,除了一些功能外它工作正常,这些选项卡默认关闭并且只有在单击后才会打开,我想要的是能够再次单击选项卡关闭包含内容的面板。我知道这可能真的很容易,但我不是 jQuery 开发人员,所以我有点吃力。

这是 Javascript:

$(document).ready(function () {
$('ul.tabs li').click(function () {
var tab_id = jQuery(this).attr('data-tab');

$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');

$(this).addClass('current');
$("#" + tab_id).addClass('current');

})

})

您可以看到完整的工作标签 JSFiddle

最佳答案

两个问题:

1) 您只需要从选项卡内容和 li 元素中 .removeClass(),它们不会成为当前点击的目标。

2) 使用 .toggleClass() 而不是 .addClass()

jQuery(document).ready(function () {
jQuery('ul.tabs li').click(function () {
    var tab_id = jQuery(this).attr('data-tab');

    jQuery('ul.tabs li').not('[data-tab='+tab_id+']').removeClass('current');
    jQuery('.tab-content:not(#'+tab_id+')').removeClass('current');

    jQuery(this).toggleClass('current');
    jQuery("#" + tab_id).toggleClass('current');
});

Working Demo

关于javascript - jQuery点击标签打开和关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27426368/

相关文章:

php - 来自一些 html 代码的 preg_match

javascript - 如何将 jquery datepicker 日期加载到 div 中显示

javascript - 外部调用 jQuery 扩展函数

javascript - ajax post带有参数500服务器未找到错误

javascript - JS - 函数执行后延迟重新加载位置

php - URL 重定向到另一个域的子域

javascript - 我如何自动调整来自 flickr api 的照片的大小?

javascript - 同时动态创建多个输入

c# - 如何在 t-sql 中使用 where 子句计算过滤后的行数?

java - 列出已运行的 jUnit 测试