编程语言
首页 > 编程语言> > javascript-如何在一个页面上有多个条目的slideToggle?

javascript-如何在一个页面上有多个条目的slideToggle?

作者:互联网

我在使用此代码时遇到问题..http://jsfiddle.net/whitewiz/z4fpx/

的HTML

<h1 id="flip">Title<h1>
        <div id="panel">
            <p>Description that slides down</p>
        </div>

    <h1 id="flip">Title<h1>
        <div id="panel">
            <p>description that DOESN'T slide down</p>
        </div>

的JavaScript

$(document).ready(function(){
  $("#flip").click(function(){
    $("#panel").slideToggle("slow");
  });   
});

和CSS

#panel,#flip
{
padding:5px;
text-align:center;
background-color:#e5eecc;
border:solid 1px #c3c3c3;
}
#panel
{
padding:50px;
display:none;
}

它们只用于第一个描述,而其余部分则不起作用.当我按“标题”但只有第一个作品时,我有大约18个应该滑下来的面板.请问您能在javascript中找到缺少的片段以允许多次切换吗?

->上的示例http://jsfiddle.net/whitewiz/z4fpx/

解决方法:

第一个起作用是因为这是DOM中具有该ID的第一个元素.通常,将相同的ID分配给多个元素是一种不好的做法.而是使用类,如下所示:

HTML:

<h1 class="flip">Title<h1>
<div class="panel">
    <p>Description that slides down</p>
</div>

<h1 class="flip">Title<h1>
<div class="panel">
    <p>description that DOESN'T slide down (but does now)</p>
</div>

CSS:

.panel,.flip
{
    padding:5px;
    text-align:center;
    background-color:#e5eecc;
    border:solid 1px #c3c3c3;
}
.panel
{
    padding:50px;
    display:none;
}

我假设您只想在单击的标题之后展开面板,在这种情况下,您需要获取最接近的元素,该元素的类名称为“ panel”,紧随其后的是“ flip”.

$(document).ready(function(){
    $(".flip").click(function(){
        $(this).next().find(".panel").slideToggle("slow");
    });
});

工作示例:http://jsfiddle.net/BBQJy/

标签:slide,slidetoggle,javascript
来源: https://codeday.me/bug/20191030/1971109.html