2013-04-09 180 views
1

我试图用jQuery实现手风琴,但是我遇到了问题。当我按下按钮时,它应该是slideToggle的信息,但它只是滑入和滑出。手风琴与jQuery

我不知道为什么它会这样做,我正在学习,如果有人能帮助我,我会很感激。

这是我的JavaScript:

$(".wrap-faq a").on("click",accordion); 

function accordion() { 
    if($(this).attr("class") != "active"){ 
     $(".wrap-faq li p").slideDown(); 
     $(this).next().slideToggle(); 
     $(".wrap-faq a").removeClass("active"); 
     $(this).addClass("active"); 
     } 
} 

我也离开了链接到我的jsfiddle演示:http://jsfiddle.net/zZaTf/

+2

你为什么不使用内置JQuery用户界面[手风琴(http://jqueryui.com/accordion/)? – Jon 2013-04-09 23:35:47

+0

我发现slideToggle很不稳定。也许尝试使用slideUp和slideDown? – 2013-04-09 23:38:57

+0

嗨Jhonnatan,你解决了这个问题吗?如果是这样,你可以发布你的答案吗?非常感谢:) – 2013-04-14 09:58:20

回答

0

您对.txt-ans-faq类和slide...效果display: none不会隐藏元素上工作。好吧,它会的,但你不会看到它。

0

正如Ilia指出的,display: none会阻止您看到您的内容文本,因此请尽快删除。您可以通过呼叫初始slideUp()来隐藏所有内容。

实际slideToggle可以简单地以这种方式实现:

$(document).ready(function() { 

    $('.txt-ans-faq').slideUp(0); 

    $('.wrap-faq a').click(function(e) { 
     $(this).next().find('.txt-ans-faq').slideToggle(300); 
    }); 
}); 

Fiddle

0

我更新了手风琴西蒙脚本。

$(document).ready(function() { 

    $('.txt-ans-faq').slideUp(0); 

    $('.wrap-faq a').click(function(e) { 
     $('.txt-ans-faq').slideUp(300);  
     $(this).next().find('.txt-ans-faq').slideToggle(300); 
    }); 
}); 

http://jsfiddle.net/zZaTf/9/