javascript - 用按钮显示隐藏元素

标签 javascript jquery html css twitter-bootstrap

我有一排由三个按钮组成的,我需要这三个按钮保持在同一行。

话虽如此,我试图做到每次单击这些按钮之一时,隐藏的内容都会显示在它们下面。每个按钮都会显示与其他按钮不同的隐藏内容。

我是否可以使用 $(this) 完成这样的任务,或者我必须为每个按钮及其应该显示的相关内容分配一个唯一的 ID?

我尝试将每个按钮放在一个名为 .items 的父类(super class)中,并将该类中的相关内容作为子类,称为 .description - 这样我就可以访问它使用 jQuery 的 .children() 函数 - 但这往往会弄乱我的按钮所在的行(因此它们并不都在同一行)。有办法解决这个问题吗?

最简单的方法是什么?

编辑以显示代码:

<div class="displayers">
    <div class="items">
        <button type="button" class="btn btn-custom">Button 1</button>
        <div class="row">
            <div class="description">
                <p> content here </p>
            </div>
        </div>
    </div>
    <div class="items">
        <button type="button" class="btn btn-custom">Button 2</button>
        <div class="row">
            <div class="description">
                <p> content here </p>
            </div>
        </div>
    </div>
    <div class="items">
        <button type="button" class="btn btn-custom">Button 3</button>
        <div class="row">
            <div class="description">
                <p> content here </p>
            </div>
        </div>
    </div>
</div>

为了使按钮适契约(Contract)一行,我将“.items”类更改为具有“inline-block”属性。 “.description”类是隐藏的,我有一些 jQuery 来显示它。

var main = function() {
    $('.items').click(function() {
        $('.description').hide(); 

        $(this).children('.description').show();
    });
}; 

$(document).ready(main); 

问题是我的按钮不再位于同一行。

最佳答案

我喜欢使用 data 属性和 css 选择器(以后很容易更改),所以我会使用:

$('[data-show]').on('click', function(e) {
    var toShow = $( $(this).data('show') );
    toShow.siblings().hide();
    toShow.show();
});
li {
    display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p>
    <button data-show=".content > *:nth-child(1)">Open 1st</button>
    <button data-show=".content > *:nth-child(2)">Open 2nd</button>
    <button data-show=".content > *:nth-child(3)">Open 3rd</button></p> 
<ul class="content">
    <li>1st Container</li>
    <li>2nd Container</li>
    <li>3rd Container</li>
</ul>

对我来说看起来很简单,但并不意味着其他人会同意。这实际上取决于您的需求。

关于javascript - 用按钮显示隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932726/

相关文章:

javascript - 扫描文件夹内的文本文件名称 HTML5/Javascript

javascript - jQuery 按钮单击不会触发表中生成的按钮

jquery - 页内 anchor 在 Firefox 中不起作用

html - Font Awesome unicode 图标在 Firefox 中不起作用

html - MaterializeCSS 中的从右到左复选框而不是从左到右

html - 这个 css 选择器有缩写形式吗

javascript - javascript 事件监听器用汇编语言编译成什么

javascript - 添加加载图形jquery

javascript - 是否可以在 Chart.js 中生成圆形(圆形)雷达图?

javascript - .替换js中的 "</div>"