0

使用 Javascript 的 div 布局

如果我单击 + 它应该打开,然后再次单击 - 它应该关闭它工作正常,但我需要的是,如果有更多 div 如何在运行时处理它们。

<html>
<head>
<script src="jquery-1.7.1.js"></script>
<script src="script.js"></script>

<style type="text/css">
#widnow{
width:100%;
border:solid 1px;
    float:left;
}

#title_bar{
background: #FEFEFE;
height: 25px;
width: 100%;
}
#button{
border:solid 1px;
width: 25px;
height: 23px;
float:right;
cursor:pointer;
}
.box{
height: 50%;
 width: 50%;
background: #DFDFDF;
float:left;
}
#title_bar1{
background: #FEFEFE;
height: 25px;
width: 100%;
}
#button1{
border:solid 1px;
width: 25px;
height: 23px;
float:right;
cursor:pointer;
}
.box1{
height: 50%;
width: 50%;
background:#C0C0C0;
float:left;
}

</style>
</head>
<body>

<div id="widnow">

<div class="box" >
<div id="title_bar">

        <div id="button">+</div>
</div>
</div>
<div  class="box1">
    <div id="title_bar1">
            <div id="button1">-</div>
    </div>
</div>
</div>

</body>

</html>

脚本.js

  jQuery().ready(function() {

$("#button").click(function(){
if($(this).html() == "-"){
    $(this).html("+");
    $( ".box" ).css( "width","50%" );
    $( ".box1" ).show();

}
else{
    $(this).html("-");
    $( ".box" ).css( "width","100%" );
     $( ".box1" ).hide();
}

});


        });

请提出可以帮助我解决问题的想法。

4

3 回答 3

1

不要对 div 的选择器进行硬编码。通过这种方式,您可以将其扩展到单个 div 之外。

使用这样的东西:

$('button').on('click',function(){
    $(this).parent('div').css({'width' : '50%'});
});

例子

于 2012-06-14T06:21:04.563 回答
0

尝试为每个 div 元素赋予不同的 id,并赋予类并使用 id (#) 而不是类 (.) 执行 jQuery 函数

于 2012-06-14T06:20:29.633 回答
0

使用相对路径/例如

$(this).parent().css("width","50%");

因此,您始终为包含已单击 (+/-) 元素的框设置样式。

您还需要调整 $(".box1") 显示/隐藏代码;正如 Pulkit 所说 - 你应该使用类而不是 id。(选择父级下面的类(“box1”)的子级是:

$(this).parent().children("#box1")
于 2012-06-14T06:25:10.047 回答