背景
我有一个由四个绝对定位的 div “象限”组成的布局,如下所示:
div.quadrant#one | div.quadrant#two
height: 25%; | height: 25%;
width: 25%; | width: 25%;
|
__________________________________________
div.quadrant#three | div.quadrant#four
height: 25%; | height: 25%;
width: 25%; | width: 25%;
|
HTML
<div class="quadrant" id="one"></div>
<div class="quadrant" id="two"></div>
<div class="quadrant" id="three"></div>
<div class="quadrant" id="four"></div>
当单击一个象限时,我正在使用 jQuery 向象限添加类.open
或类,.closed
以便quadrant.open
增长到 95% 的宽度和 100% 的高度,并quadrant.closed
缩小到 5% 的宽度和 33.33% 的高度。这是代码:
$( 'div.quadrant' ).click(function() {
$(this).addClass('open');
$(this).parent().children('div.quadrant').not('.open').addClass('closed');
});
我的那件工作没问题。这就是我难过的地方:
问题
我还尝试使用.addClass
向三个div.closed
元素添加另一个类,具体取决于它们是第一个div.closed
、第二个还是第三个。如果 div 是第一个具有“关闭”类的 div,我还想添加.top
; 如果是第二个,我想补充一下.middle
;如果是第三个,我想添加.bottom
.
我试图通过使用:eq(1)
,:eq(2)
和:eq(3)
. 但是,它仅在单击div#one
或被div#two
单击时才有效,然后之后的div.closed
象限似乎不会受到影响。这是代码:
$(this).parent().children('div.quadrant').not('.open').addClass('closed');
$(this).parent().children('div.quadrant:eq(1)').not('.open').addClass('top');
$(this).parent().children('div.quadrant:eq(2)').not('.open').addClass('middle');
$(this).parent().children('div.quadrant:eq(3)').not('.open').addClass('bottom');
这是一个 JS Bin: http: //jsbin.com/UJopeTo/1/edit ?html,css,js,output
我链接这些功能的方式有问题吗?任何帮助表示赞赏!