JQuery Accordion在单击另一个项目时折叠已曝光的项目

时间:2013-11-20 14:45:15

标签: javascript jquery

我必须接近,我已经尝试了不同的方法来实现我的目标,但都失败了。我相信有人会指出答案,我将给自己一个涂料巴掌。我的目标是有一个问答部分,当你点击它时会显示答案。我尝试过简单的slideToggle()和隐藏子方法。我认为slideToggle()将是我最需要的。由于Q& A是数据驱动的,我使用的是类而不是ID。我认为考虑到我的问题的性质,看到我失败的jsfiddles将显示尝试的内容并且更有帮助。

使用儿童方法我在http://jsfiddle.net/5L8fQ/6/尝试了它。

 $(document).ready(function () {
     // hide the answers
     //$('.answer').hide();
     $('showanswer').click(function () {
         $(this).parent().parent().next('.answer').slideToggle();
     });
 });

HTML很简单。这是一篇

<ul id="questionsContainer">
    <li>
        <div><a href="#" class="showanswer">Where can I find an installation document?</a>

        </div>
    </li>
    <div class="answer">
         <h4>Answer</h4>

        <ul>
            <li>Login</li>
            <li>Go to download</li>
            <li>Installs and Updates</li>
            <li>Click on download.</li>
        </ul>
    </div>
    <br />

关于这一点,我已经注释掉了隐藏答案类,因为我想让调试对我来说很简单。 我也尝试了一种基于http://www.jacklmoore.com/notes/jquery-accordion-tutorial/的不同方法,它显示了我想做的事情,我希望我的代码也能这样做。我这样做的尝试是在同一个jsfiddle.net链接,但版本8。应该注意的是,HTML是针对第一个项目构建的,我一直在玩代码以查看其他内容会发生什么。我的想法是,如果它在第一个项目上工作,我可以将结构更改为其他项目。我希望这是坚实的想法。

除了JQuery帮助之外,我对这里的每个人都有一个问题。是否可以链接到页面,就像您从外部页面进行链接并将其转到接收页面中的某个部分,链接转到某个部分并启动该链接的slideToggle()事件。换句话说,如果有人想要查看问题和答案并且他们来自外部页面,那么该链接会打开以显示答案吗?从我在JQuery上学到的东西,我相信答案是否定的。 (这会是另一种自我诱导的涂料吗?)

感谢您考虑帮助我。

1 个答案:

答案 0 :(得分:0)

试试这个:

$(".showanswer").click(function () { // write .showanswer instead of showanswer
    $(this).closest("li").next(".answer").slideToggle();
    return false;
});

.closest()遍历DOM树。

Updated fiddle here.