Did you wrap the tab click function in a document.ready, so that the tabs were there to apply the function to ?

$(document).ready(function() {
   $(".tabs").click( function(){
       var number = $(this).attr("id");
       $(".hiding").hide();
       $("#div"+ number).show();
       $(".tabs").removeClass("highlight");
       $(this).addClass("highlight");
   });
});

Try an alert in the above to see what it's trying to show.

I'm also not 100% certain on the advisability of having numeric-only ids ?

L

Laura wrote:
Hi all.    I'm very new at jQuery, and I've gotten myself stuck.    I
have a set of menu tabs which should show/hide divs on the page, and
the active tab should change style.  So far I have been able to write
the following, which does exactly what I want it to:

function divFlip()
{
                $(".hiding").hide();
              $("#div1").show();
                $(".tabs").removeClass("highlight");
                $("#1").addClass("highlight");
}

which I've called from an onclick in the tab.  (I know that's not
recommended; I'll get to that.)

My problem has come in expanding that to affect all the tabs/divs.   I
can't figure out how to put a variable ID into the thing, so that I
can have the function work on #div2/#2, #div3/#3, etc.

I have tried to do a click(function()) that sends (this).attr(id) as a
variable from the tab clicked on to the function as $("#div" +
variable), thus:

(".tabs").click( function(){
var number = $(this).attr("id");
$(".hiding").hide();
$("#div"+ number).show();
$(".tabs").removeClass("highlight");
$(this).addClass("highlight");
});

which *DID* work.   However, when I changed over from using the
onclick to the click(fn), it no longer worked on the first click -- I
have to double-click on the tabs in order to trigger the show/hide
behavior.  How can I:

a) make the click(fn) not need a double-click to work
or
b) modify the divFlip function called onclick to work for all tabs/
divs?

html below, stripped down to its bare-bones form for testing:
        <div id="menu_tabs">
                <ul id="tab_list">
                        <li id="1" class="tabs" onclick="divFlip1();">Div 
One</li>
                        <li id="2" class="tabs">Div Two</li>
                        <li id="3" class="tabs">Div Three</li>
                </ul>
        </div>


<div id="div1" class="hiding">
<p> This is div 1</p>
</div>
<div id="div2" class="hiding">
<p> This is div 2 </p>
</div>
<div id="div3" class="hiding">
<p> This is div 3 </p>
</div>
------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG - www.avg.com Version: 8.5.409 / Virus Database: 270.13.61/2313 - Release Date: 08/19/09 06:03:00


Reply via email to