简体   繁体   English

点击 <li> ,fadeOut(#div1),fadeIn相关索引div

[英]Click on <li>, fadeOut(#div1), fadeIn related index div

I am new to jQuery and my way of learning is by following tutorials and tweak them afterwards. 我是jQuery的新手,我的学习方式是通过遵循教程并对其进行调整。 I am making a quiz from two tutorials combined where I have the following html code 我正在结合两个教程进行测验,其中有以下html代码

<div class="questionContainer 1 hide">
        <ul class="answers img-hover">
            <li></li>
            <li></li>
        </ul> 
        <div class="btnContainer">
            <div class="next">
                <a class="btnNext" href="#"><img class="btnNext" src="img/Knap.png"></a>
            </div>
        </div>
    </div>


<div class="questionContainer 2 hide">
        <ul class="answers img-hover">
            <li></li>
            <li></li>
        </ul> 
        <div class="btnContainer">
            <div class="prev">
                <a class="btnPrev" href="#">Previous</a>
            </div>
            <div class="next">
                <a class="btnNext" href="#"><img class="btnNext" src="img/Knap.png"></a>
            </div>
        </div>
    </div>

<div id="progressKeeper">
        <ul>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
            <li><a class="step" href="#"></a></li>
        </ul>
    </div>

There are a total of 9 questions and progress indicator dots. 共有9个问题和进度指示器点。 jQuery is being used to handle the question divs with .fadeOut() and .fadeIn() and with "next" and "previous" buttons. jQuery正在通过.fadeOut().fadeIn()以及“下一个”和“上一个”按钮来处理问题div。

$('.btnNext').click(function(){

                var tempCheck = $(this).parents('.questionContainer').find('input[type=radio]:checked');
            if (tempCheck.length == 0) {
                 notice.fadeIn(300);return false;
            }
                 notice.hide();
            $(this).parents('.questionContainer').fadeOut(500, function(){
                $(this).next().fadeIn(500);


                $('#progressKeeper ul li a.step.green').last().parent().next('li').find('a').addClass('green');

            });
                 return false;
        });         


        $('.btnPrev').click(function(){
                notice.hide();
            $(this).parents('.questionContainer').fadeOut(500, function(){
                $(this).prev().fadeIn(500);
                $('#progressKeeper ul li a.step.green').last().parent().last('li').find('a').removeClass('green');
            });
                 return false;
        });

What I am trying to achieve is when a user click on a progress indicator, fade out current questionContainer div and fade in the relative questionContainer. 我要实现的目标是,当用户单击进度指示器时,淡出当前的questionContainer div并淡入相对的questionContainer。 So if you are at the 8th question and click on progress indicator 1, fade out current div and fade in div no. 因此,如果您在第8个问题上并单击进度指示器1,则淡出当前div,淡入div no。 1. 1。

How can I achieve this? 我该如何实现?

PS I have left irrelevant code so it might not make 100% sense the above code. PS我留下了无关的代码,因此上面的代码可能没有100%的意义。

Thanks in advance 提前致谢

You can set it up like this: 您可以这样设置:

<div class="questionContainer step0 active"></div>
<div class="questionContainer step1"></div>
<div class="questionContainer step2"></div>
<div class="questionContainer step3"></div>


<div id="progressKeeper">
    <ul>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
        <li><a class="step" href="#"></a></li>
    </ul>
</div>

script: 脚本:

$(".step").click(function(){
  index = $(this).parent().index();

  //hide active step
  $(".questionContainer.active").fadeOut(500, function(){
       //remove active class 
       $(this).removeClass('active');

       //show index and add active class
       $(".questionContainer.step"+index).fadeIn();
       $(".questionContainer.step"+index).addClass('active');
  });

});

http://jsfiddle.net/yak06am1/1/ http://jsfiddle.net/yak06am1/1/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM