Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 展开折叠Div列表_Javascript_Html - Fatal编程技术网

Javascript 展开折叠Div列表

Javascript 展开折叠Div列表,javascript,html,Javascript,Html,我正在尝试展开/折叠列表项。文本将是word,后跟定义排序,即单击word时定义出现/消失的位置。这是我目前的代码: <html> <script type="text/javascript"> function toggleVisibility(listItem) { var listItemDiv = document.getElementById(listItem); if(listItemDiv.style.visibility == 'hidden') {

我正在尝试展开/折叠列表项。文本将是word,后跟定义排序,即单击word时定义出现/消失的位置。这是我目前的代码:

<html>
<script type="text/javascript">

function toggleVisibility(listItem) {
var listItemDiv = document.getElementById(listItem);

if(listItemDiv.style.visibility == 'hidden') {
        listItemDiv.style.visibility = 'visible';
    } else {
        listItemDiv.style.visibility = 'hidden';
    }


}

</script>

<div onclick="toggleVisibility('p1')">p1</div><div id=p1>p1's text</div></br>
p2<div id=p2>p2's text</div></br>
p3<div id=p3>p3's text</div></br>
p4<div id=p4>p4's text</div></br>
p5<div id=p5>p5's text</div></br>

</html>

功能切换可见性(listItem){
var listItemDiv=document.getElementById(listItem);
如果(listItemDiv.style.visibility=='hidden'){
listItemDiv.style.visibility='visible';
}否则{
listItemDiv.style.visibility='hidden';
}
}
p1p1的文本
p2p2的文本
P3的文本
P4的文本
P5的案文
但是,此代码隐藏了我的文本,而不是折叠/展开。我希望最好通过javascript实现这一点

解决方案:

function toggleVisibility(listItem) {
var listItemDiv = document.getElementById(listItem);

if(listItemDiv.style.display == 'none') {
        listItemDiv.style.display = 'block';
    } else {
        listItemDiv.style.display = 'none';
    }   
}

<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">

$(window).load(function(){
    $('dt').click(function(){
                var dl = $(this).parent();
                $('dd',dl).slideToggle();
    });
});          
</script>

<dl>
    <dt>
        item1
    </dt>
    <dd>
        item1.description
    <dd>
</dl>

</html>

$(窗口)。加载(函数(){
$('dt')。单击(函数(){
var dl=$(this.parent();
$('dd',dl).slideToggle();
});
});          
项目1
项目1.说明

jQuery是很好的、非常有效的选择。找到jQuery代码。但我不理解它,所以尝试不使用它折叠扩展功能通常使用UL和LI,而您在这里使用的是div。所以我猜您必须自己编写代码。因为这样的示例可能会使用UL LI的jQuery,并从中删除if条件,然后使用$('#'+listItem)。slideToggle();它可能会给你带来你想要的滑动效果,这在CSS3动画中是可能的,但这比jQuery还要复杂。所以使用jQuery。