Fading out an article and dropping down a form at the same time?

Posted by eveo on Stack Overflow See other posts from Stack Overflow or by eveo
Published on 2012-05-31T16:34:20Z Indexed on 2012/05/31 16:40 UTC
Read the original article Hit count: 310

Filed under:

I have an article:

<article>
    Some paragraphs.
</article>

Below that I have my contact:

<div id="contact">
    stuff, this form is 600 px tall
</div>

contact is set to display:none;.

I use jQuery to toggle it. What I'm trying to do is modify this script from http://tutsplus.com/lesson/slides-and-structure/ so that it fades out the article text and then slides in the contact form. Having some trouble.

Code:

<script>

(function() {

$('html').addClass('js');

var contactForm = {

    container: $('#contact'),
    article: $('article'),

    init: function() {
        $('<button></button>', {
            text: 'Contact Me'
        })
            .insertAfter('article:first')
            .on('click', function() {
                console.log(this);
                this.show();
                // contactForm.article.fadeToggle(300);
                // contactForm.container.show();
            })
    },

    show: function() {
        contactForm.close.call(contactForm.container);
        contactForm.container.slideToggle(300);
    },

    close: function() {
        console.log(this);
        $('<span class=close>X</span>')
            .prependTo(this)
            .on('click', function(){
                contactForm.article.fadeToggle(300);
                contactForm.container.slideToggle(300);
            })
    }
};

contactForm.init();

})();

</script>

The part that is not working is:

.on('click', function() {
    console.log(this);
    this.show();
    // contactForm.article.fadeToggle(300);
    // contactForm.container.show();
})

When I do .on('click', this.show); it works fine, when I put this.show in a function it does not work!

© Stack Overflow or respective owner

Related posts about jQuery