javascript - JQuery FAQ slider 答案不会隐藏?

标签 javascript jquery html slider jquery-ui-slider

我正在使用 JQuery 为 FAQ 问题制作一个垂直 slider ,即您单击问题,答案就会向下滑动。一切正常,除了我的答案在页面加载时没有隐藏。如果您单击一个问题使答案向上滑动,然后再次单击同一个问题使答案向下滑动,只有这样其余的答案才会向上滑动并隐藏。有人能看出我做错了什么吗。

CSS

<style type="text/css">
ul.qanda{
    color:#f5f5f5;
    list-style:none;
    margin:0;padding:0}
.qanda li{
    border:1px solid #f5f5f5;
    margin:1em 0;padding:0}
.qanda .question{
    cursor:pointer;
    display:block;
    font-size:1.3em;
    font-weight:300;
    padding:.75em 1.25em;
    position:relative}
.qanda .answer{
    border-top:1px dashed #f5f5f5;
    display:block;
    padding:.75em 1.25em}
.qanda a{
    color:#ccc}
.qanda .question{
    padding-left:1.5em}
.qanda .question:before{
    content:"+";
    font-weight:700;
    position:absolute;
    left:.5em}
.qanda .active:before{
    content:"-"}
</style>

JQuery

<script type="text/javascript">
$(document).ready(function(){
  $(".question").click(function(){
   var a = $(this).parent('li').find('.answer');
    if ( a.css('display') == 'none' ) {
        $('.question').removeClass('active');
        $('.answer').slideUp('fast');
        a.slideDown();
        $(this).addClass('active');
    } else {
            a.slideUp();
            $(this).removeClass('active')
    }
  });  });
 </script>

HTML

<ul class="qanda">
    <li>
            <strong class="question">Q: Question?</strong>
            <span class="answer">
                    A: Answer
            </span>
    </li>
    <li>
            <strong class="question">Q: Question?</strong>
            <span class="answer">
                    A: Answer
            </span>
    </li>
    <li>
            <strong class="question">Q: Question?</strong>
            <span class="answer">
                    A: Answer
            </span>
    </li>
    <li>
            <strong class="question">Q: Question?</strong>
            <span class="answer">
                    A: Answer
            </span>
    </li>

</ul>

最佳答案

http://jsfiddle.net/H8k8c/1/

  $(document).ready(function () {
   $('.answer').hide();
   $(".question").click(function () {
       var a = $(this).parent('li').find('.answer');
       if (a.css('display') == 'none') {
           $('.question').removeClass('active');
           $('.answer').slideUp('fast');
           a.slideDown();
           $(this).addClass('active');
       } else {
           a.slideUp();
           $(this).removeClass('active')
       }
   });

});

关于javascript - JQuery FAQ slider 答案不会隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21050950/

相关文章:

javascript - 我想使用 style 标签覆盖 css 类属性。动态更改样式标签值

javascript - 使用 js toString() 方法转换对象会给出奇怪的结果吗?

jquery - 当我在显示 :none and display: inline-block 之间添加切换时,CSS3 过渡不起作用

jquery - Animate.css 网站颜色渐变动画

html - Firefox 在 Aptana 中看不到 CSS/HTML 链接

javascript - 单击最近的输入时一次仅显示一个跨度

javascript - 这样使用Promise好不好?

javascript - 为什么删除sessionStorage后仍然存在

javascript - 如何在特定的 jquery 验证结构中验证 radio

html - 开发具有离线功能的移动 Web 应用程序的最佳方法