【发布时间】:2014-08-29 14:31:23
【问题描述】:
我正在努力在页面上显示一些动态内容。我在要展开和关闭的 div 上使用 onclick 功能。我已经使它工作,这样我就可以通过单击它来打开和关闭一个 div,但是单击其他 div 不会关闭当前展开的那个。我希望这是有道理的。一些代码:
<div class="container collapsed">
<div id="a_<?php echo $a->id?>" class="<?php echo $div_class?>" onclick="$(this).find('.content').slideToggle();$(this).siblings().slideUp();">
<div class="t">
<?php echo date('H:i', strtotime($a->start))?> - <?php echo date('H:i', strtotime($a->end))?>
</div>
<div class="i">
<?php echo $a->id?>
</div>
<div class="tt">
<?php echo $a->name?>
</div>
<div class="l">
<?php echo $a->l?>
</div>
<?php while($c=$obj->fetchNextObject($sql)):?>
<div class="c">
<?php echo $c->name_2?>
</div>
<?php endwhile ?>
<div class="content">
<p>content</p>
</div>
<div class="<?php echo $s_class?>">
<div class="bottom_line"></div>
<div class="bottom_line2"></div>
</div>
</div>
</div>
我希望代码不会太模糊。问题确实出在 jQuery 部分——其他一切都正常工作。单击另一个 div 时如何关闭一个 div?
【问题讨论】:
-
你要上下滑动哪些div?
-
假设您有多个
<div class="container collapsed">是否正确? -
是的,这些 div 有多个。它们是从接收提要的数据数据库中动态创建的。当关闭容器折叠 #1 打开时会出现问题,然后我单击例如容器折叠#2 应该关闭所有其他打开/展开的 div。关闭 div 的唯一方法是再次单击同一个 div - 这很好,但另一件事也应该有效。
-
您应该从摆脱内联javascript开始,将所有内容放在一个事件处理程序中,您将能够处理所有这些。