user2869777
user2869777

Reputation: 15

Show and Hide functions using Jquery

I am new for jquery, Here is my code:

<script type="text/javascript">
            $(document).ready(function () {
                $('.toAdd').hide();

                var count = 0;
                $('#add').on('click', function () {
                    $('.toAdd:eq(' + count + ')').show();
                    count++;
                });
            });

</script>
<div class="toAdd">One</div><div class="toAdd">Two</div><div class="toAdd">Three</div>
<input type="button" value="show" id="add"/>
<input type="button" value="hide" id="sub"/>

In this code if i click show button the divisions one by one it showing. after that i need to hide one by one if i click hide button

Fiddle here

Upvotes: 1

Views: 394

Answers (7)

Rahul J. Rane
Rahul J. Rane

Reputation: 246

The answer of Outlooker is right but have some little bit error. when user will click on show button 4th time then your hide doesn't work as expected. So I just fix the chunk here and sharing with you guys.

Html Code:

<div class="toAdd">One</div>
<div class="toAdd">Two</div>
<div class="toAdd">Three</div>
<input type="button" value="show" id="add" />
<input type="button" value="hide" id="sub" />

Java Script Code:

/**
 * Hide all Content div
 */
$(".toAdd").hide();
/**
 * Total no of content div find out
 **/
var lengthDiv = $(".toAdd").length;
/**
 * Default count declare
 **/
var count = 0;
/**
 * Click on show button
 **/
$('#add').on('click', function () {
    if (count < lengthDiv) {
        $('.toAdd:eq(' + count + ')').show();
        count++;
    }
});
/**
 * Click on hide button
 **/
$('#sub').on('click', function () {
    if (count > 0) {
        count--;
        $('.toAdd:eq(' + count + ')').hide();
    }
});

Fiddle Example

Upvotes: 2

gurvinder372
gurvinder372

Reputation: 68393

Try this too

<script type="text/javascript">
            $(document).ready(function () {
                $('.toAdd').hide();

                $('#add').on('click', function () {
                    $('.toAdd,.hidden').first().show().addClass( "shown" ).removeClass( "hidden" );
                });
                $('#sub').on('click', function () {
                    $('.toAdd,.shown').last().hide().addClass( "hidden" ).removeClass( "shown" );
                });
            });

Upvotes: 2

AxelPAL
AxelPAL

Reputation: 1027

Edited jsfiddle by Outlooker

if($('.toAdd:eq(' + count + ')').is('*'))

Added check of item existance.

Fiddle

Upvotes: 2

Arun P Johny
Arun P Johny

Reputation: 388316

Try

var $toAdds = $('.toAdd').hide();

var count = 0;
$('#add').on('click', function () {
    if (count < $toAdds.length) {
        $toAdds.eq(count).show();
        count++;
    }
});
$('#sub').on('click', function () {
    if (count > 0) {
        count--;
        $toAdds.eq(count).hide();
    }    
});

Demo: Fiddle

Upvotes: 1

Marikkani Chelladurai
Marikkani Chelladurai

Reputation: 1430

$(document).ready(function () {
    $('.toAdd').hide();

    var count = 0;
    $('#add').on('click', function () {
        $('.toAdd:eq(' + count + ')').show();
        count++;
    });
    var deCount = count;
    $('#sub').on('click', function () {
        count--;
        $('.toAdd:eq(' + count + ')').hide();
    });
});

Upvotes: 5

S. S. Rawat
S. S. Rawat

Reputation: 6111

Try this this will work you very fine

    $('.toAdd').hide();
    $('#add').click(function(){
    $('div').each(function(key, value) {

            $(value).delay(key * 500).fadeIn(500);

        });});
        $('#sub').click(function(){
        $('div').each(function(key, value) {

            $(value).delay(key * 500).fadeOut(500);

        });
});

Fiddle Here

Upvotes: 1

Nibin
Nibin

Reputation: 3960

Hope this might help you... :)

                 $('#sub').on('click', function () {
                        if(count > 0){
                           count--;
                        $('.toAdd:eq(' + count + ')').hide();
                        }

                    });

Upvotes: 4

Related Questions