javascript - slideUp() 所有元素但不包括被选元素

标签 javascript jquery css

我想做的就是:

  • 有7个数字和7个div,它们相互关联(nr 0与div 0有关系)
  • 当点击其中一个数字时,它应该折叠所有其他未被选中的 div
  • 可以一次多选

综上所述,基本上,页面有一些带有数字的标签和默认显示的 7 个 div(div),但是当通过单击数字选择其中一个或多个时,页面应该仅显示所选的 div。

这是我一直在尝试做的事情:

for(var i = 0; i <= 6; i++) {     
            if(i != (floors[i])) {
                $("#lvl" + floors[i]).slideUp();
            }
        }

更多代码: http://jsfiddle.net/LSjg4/

最佳答案

尝试

var floors = [];

var $lvls = $('.lvl'), $nrs = $(".nr");
$nrs.click(function () {
    var $nr = $(this), index = $nrs.index($nr), $lvl = $lvls.eq(index);

    $lvl.add($nr).toggleClass('active');

    if($nr.hasClass('active')){
        $lvls.not('.active').slideUp();
        $lvl.slideDown();

        $nr.css("background-color", "#1b7664");
        $nr.css("border-color", "#236959");
        floors.push(($nr).text());
    } else {
        $nr.css("background-color", "#02c099");
        $nr.css("border-color", "#13a480");

        if($nrs.filter('.active').length == 0){
            $lvls.slideDown();
        } else {
            $lvls.not('.active').slideUp();
        }
        var text = $nr.text();
        floors.splice($.inArray(text, floors), 1);
    }

    console.log('floors', JSON.stringify(floors))
});

演示:Fiddle

关于javascript - slideUp() 所有元素但不包括被选元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18396935/

相关文章:

javascript - 什么是 var x = x || {} ;

javascript - Jasmin spy 监听 AJAX 无法读取未定义的属性 'done'

css - 我可以在本身为 100% 高度的 DIV 中设置 100% 高度吗?

javascript - 悬停效果不会触发底层元素?

javascript - 哪些 CSS 文件会影响网页?

javascript - Ext js 编码标准/最佳实践

javascript - 如何使一个选择框的值驱动第二个选择框的选项

jquery - 如何从 jquery 访问部分中的隐藏字段?

javascript - jQuery 代码在 while 循环中不起作用

jquery - jQuery 选项卡中的相同高度 li