javascript - Bootstrap : show/hide column divs with checkbox and change column span

标签 javascript jquery html css twitter-bootstrap

我正在使用 Bootstrap 3.2。我想弄清楚是否有办法显示/隐藏“col-sz-#”div 并更改可见 div 中的“col-sz-#”类以使用复选框样式按钮调整它们的大小以适合容器每列。

例如,如果我从

开始
<div class="row">
    <div class="col-md-2">...</div>
    <div class="col-md-2">...</div>
    <div class="col-md-2">...</div>
    <div class="col-md-2">...</div>
    <div class="col-md-2">...</div>
    <div class="col-md-2">...</div>
</div>

然后如果隐藏其中的 2 个并调整其他的大小:

<div class="row">
    <div class="col-md-2 hidden">...</div>
    <div class="col-md-2 hidden">...</div>
    <div class="col-md-3">...</div>
    <div class="col-md-3">...</div>
    <div class="col-md-3">...</div>
    <div class="col-md-3">...</div>
</div>

如果总列不能像 5 一样整除 12,那么它就不会改变。

最佳答案

你可以这样做:

var $myCols =  $("#myColumns");

$("#toggleColumns input").change(function() {
    var index = +this.value - 1;
    var visible = this.checked;

    $($myCols.children().get(index)).toggle(visible);

    resizeColumns();
});

function resizeColumns() {
    var visibleCols = $myCols.children(":visible").length;

    var div = Math.floor(12 / visibleCols);
    var rem = 12 % visibleCols;

    var colSize = (rem === 0) ? div : 2;

    $myCols.children().removeClass().addClass('col-md-'+colSize);

}

Demo in jsFiddle

更新:

如果您想对多个相同的行进行操作,只需使用选择器找到所有这些行,然后在每个 行上调用一个函数:

$(".resizeRow").each(function(){
    var $eachRow = $(this);
    // Do Stuff
});

Updated Fiddle

关于javascript - Bootstrap : show/hide column divs with checkbox and change column span,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25476837/

相关文章:

javascript - 获取 Google Analytics 当前页面浏览量的引荐来源网址

javascript - 悬停时暂停以实现简单的 jquery 轮播

javascript - HTML5 音频 - currentTime 属性不准确?

javascript - 通过 json 结果在输入下附加表单验证消息

jquery - 适用于 HTML5 的语法荧光笔?

css - Internet Explorer z-index 错误?

html - 两行之间文本的 HTML 和 CSS 代码是什么?

javascript - 如何在 Vue 中的方法函数之前设置变量(去抖)?

jquery - 如何使用 jquery 更改视频海报?

javascript - 为什么输入的值属性没有改变?