A question about toggleClass... everything below works, so its not a problem as such...

http://www.g-raff.co.uk/jquery/basic.html

I added a statement to the code to change the appearance of headings that had been clicked, and back again when they were clicked a second time.

function init() {
        // set first section to be open on launch
        $("a.open_btn:eq(0)").toggleClass("down_state");

// now iterate through <a class="open_btn"> objects to add click methods to open corresponding <div class="section">
        $("a.open_btn").each(function(index) {
                $(this).click(function() {
                        $(this).toggleClass("down_state");
                        $('div.expandedSection:eq(' + index + 
')').slideToggle("normal");
                        return false;
                });
        });
};

What I'm wondering about are the inner workings of toggleClass.

In the script above, I have applied the click method to all instances of a.open_btn - but of course when it's clicked, there is a "change of class" to .down_state - yet the click method still works.

I'm just wondering how the toggleClass method is implemented, as this seems like voodoo to me - an element can't have 2 classes, can it? Yet, when an "a.open_btn" becomes "a.down_state", it still retains the click methods belonging to instances of "a.open_btn" - don't get me wrong, I'm glad it works! But I'd prefer to understand WHY it works.

I think I might give up Flash. This is too good...

Cheers

SJ






GIF image



_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to