Jquery调整4列的大小
我有以下内容,使用这个JS:Jquery调整4列的大小,jquery,html,css,Jquery,Html,Css,我有以下内容,使用这个JS: $(".blah").on('click', function () { $(this).removeClass('col-md-9'); $(this).toggleClass('col-md-3 col-md-9'); $('.blah').not(this).toggleClass('col-md-3 col-md-1'); }); 这就是我需要的:使用bootstrap,有4列,加起来总是“12”。当前,如果我单击一列,它会将
$(".blah").on('click', function () {
$(this).removeClass('col-md-9');
$(this).toggleClass('col-md-3 col-md-9');
$('.blah').not(this).toggleClass('col-md-3 col-md-1');
});
这就是我需要的:使用bootstrap,有4列,加起来总是“12”。当前,如果我单击一列,它会将自身大小调整为更大,并将其他列更改为更小。但我无法让它工作,因此如果一列设置为col-md-9
,我单击另一列,它应该将自身设置为更大,并收缩其他列。在我的测试页面上,这很好,因此列并排排列。我不知道为什么我的JSFIDLE不能同样工作,但它仍然可以让我明白我的观点。我只希望我点击的任何一个栏目都比其他栏目大。除非我单击较大的列,然后将它们全部设置回相同的大小
$(".blah").on('click', function () {
$('.blah').removeClass('col-md-9').addClass('col-md-1');
$(this).addClass('col-md-9');
});
以下是最新的
希望这有帮助。jQuery
$(".blah").on('click', function () {
if ($(this).hasClass('col-md-9')) {//if large
$(this).removeClass('col-md-9').addClass('col-md-3')//remove 9 add 3
.siblings('.col').removeClass('col-md-1 col-md-9').addClass('col-md-3');//remove 1,9 add 3
} else {//if not large
$(this).removeClass('col-md-1 col-md-3').addClass('col-md-9')//remove 1,3 add 9
.siblings('.col').removeClass('col-md-3 col-md-9').addClass('col-md-1');//remove 3,9 add 1
}
});
.toggleClass()
可能会变化无常,请确保在不希望元素具有特定类的实例中使用.removeClass()
,并在应该始终添加特定类的地方使用addClass()
我将其包装在一个if
语句中,因为这里移动了两个以上的类,并且一个特定的单击元素可以有一个包含任何选项的当前类
我还在列上添加了一个.col
类,它向列中添加了float:left
,以便它们内联嵌套
这也可以在没有网格框架的情况下内联完成:您可以尝试在单击时从所有div标记中删除col-md-9类,而不是仅从您单击的标记中删除。像这个$(“.blah”).removeClass(“col-md-9”);而不是$(this.removeClass(“col-md-9”);出于好奇,为什么
.toggleClass()
变化无常?toggleClass一点也不变化无常。。。在或
场景中,当它与多个类一起使用时,您始终可以传递第二个参数,在这种情况下,一次只能有一个类,您必须小心,一次只能应用一个类,并且在您永远不希望应用该类的实例中不使用toggle;这不符合问题的要求,“除非我单击较大的列,然后将它们全部设置回相同的大小。”