-1

我试图用 jQuery 手风琴制作模板。我只需要一键打开 2 个具有 2 个不同效果的 div。

我的代码:

jQuery:

$(document).ready(function() {
    $('div.question').click(function() {
        $('div.answer').slideUp(600);   
        $(this).next().slideDown(600);
    });
    $("div.answer").hide();
});

HTML:

<div class="question">Question</div>
<div class="answer">Answer</div>

但是,我想做这样的事情,点击问题后显示 2 div 和 2 效果:

jQuery:

$(document).ready(function() {
    $('div.question').click(function() {
        $('div.answer').slideUp(600);   
        $('div.tip').fadeIn();  
        $(this).next().slideDown(600);
        $(this).next().fadeOut();
    });
    $("div.answer").hide();
    $("div.tip").hide();
});

HTML:

<div class="question">Question</div> <!--On click-->
<div class="answer">Answer</div> <!--Open with slide effect-->
<div class="tip">Tip</div> <!--Open with fade in effect-->

单击问题后如何显示 2 个具有 2 个效果的 DIV?

有问题的演示:http: //jsfiddle.net/3RtKS/

4

2 回答 2

1

不知道你的意思,试试这个:

$(document).ready(function() {
    $('div.question').click(function() {
        $('.answer').slideUp(600);   
        $('.tip').fadeOut(600);

        $(this).next('.answer').slideToggle(600);   
        $(this).next('.answer').next('.tip').fadeToggle(600);
    });
    $("div.answer").hide();
    $("div.tip").hide();
});​

演示:http: //jsfiddle.net/3RtKS/7/

于 2012-08-20T10:26:49.970 回答
1

我更新了一个小提琴:http: //jsfiddle.net/3RtKS/5/

要点是您需要两个 next 来找到提示,我将淡入和淡出交换为我认为您想要的方式:

$('div.question').click(function() {
    $('div.answer').slideUp(600);   
    $('div.tip').fadeOut();  
    $(this).next().slideDown(600);
    $(this).next().next().fadeIn();
});

我还创建了第二个小提琴,我认为这可能是一种更好、更包容的方式——next似乎有点脆弱。

http://jsfiddle.net/3RtKS/3/

这将答案和提示嵌套在问题元素中(尽管您可以添加新元素)。这样做的好处是您只需要在点击的问题元素中找到提示和答案即可处理。

然后脚本变为:

$('div.question').click(function() {
    $('div.answer').slideUp(600);   
    $('div.tip').fadeOut();  
    $('div.answer', this).slideDown(600);
    $('div.tip', this).fadeIn();
});

和 HTML:

<div class="question">Question 
    <div class="answer">Answer</div>
    <div class="tip">Tip</div>
</div>

最后,我可能会有更多的 div(例如questionTextdiv)以使其更易于管理。

于 2012-08-20T10:38:04.297 回答