切换子面板的打开/关闭
我将从以下HTML开始:
<div class="button-wrap">
<div id='btn1' class='button'>button1</div>
<div id='btn2' class='button'>button2</div>
<div id='btn3' class='button'>button3</div>
</div>
<div id='desplegable_left' class='desplegable btn1'>Left</div>
<div id='desplegable_center' class='desplegable btn2'>Center</div>
<div id='desplegable_right' class='desplegable btn3'>Right</div>
您希望将每个.button
元素链接到相应的.desplegable
元素,一种方法是将每个元素的id
值.button
作为类名分配给相应的.desplegable
元素。
对于jQuery,请使用以下内容:
$(".button").click(function (e) {
var theID = $(this).attr("id");
var theDisplay = $('.desplegable.' + theID).css("display");
if (theDisplay == 'none') {
$('.desplegable').hide();
$('.desplegable.' + theID).slideToggle(1000);
} else {
$('.desplegable.' + theID).slideToggle(1000);
}
});
单击 时.button
,获取id
属性的值。
然后,您可以使用组合的 CSS 选择器选择相应的目标元素,例如.desplegable.btn1
并检查 CSSdisplay
属性值以查看它是“none”还是“block”,分别对应于隐藏或显示。
如果目标元素被隐藏 ( display: none
),则隐藏所有目标元素并打开感兴趣的元素。
否则,只需切换或隐藏当前的。
我不确定您是否真的希望目标元素出现在按钮的右侧,然后向下移动到按钮行下方。
您可以通过添加overflow: auto
到父级来解决此问题,其中包含包装按钮,如CSS所示:
.button-wrap {
outline: 1px dotted blue; /* Optional! for demo only */
overflow: auto; /* This will make sure the floats
don't inteact with .desplegable div's */
}
小提琴演示位于:http: //jsfiddle.net/audetwebdesign/4FWMe/