show/hide icons on click jquery

Posted on 2010-11-16
Medium Priority
Last Modified: 2012-05-10
Hi experts.

In our application,we have a menu with 18 navigation icons so I am trying to hide some of the icons and toggle on click of a button. I have found a jquery script which I like but the script works with divs and I want it to work on  'TD' as each icon is in a single TD in my code .
I have attached 3 files
1. the show/hide script
2. my code

Question by:vravi22
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
  • +2
LVL 13

Expert Comment

ID: 34143257
have you tried giving the specified td an id and/or a class.  jquery works with css selectors (besides other things) . so you modify

$("#showr").click(function () {
  $(".CLASS").show("fast", function () {  /*or #id of td you want to hide show*/
    /* use callee so don't have to name the function */
    $(this).next("div").show("fast", arguments.callee);
$("#hidr").click(function () {
  $("div").hide(2000);  /* .class or #id you want to show/hide
LVL 13

Expert Comment

ID: 34143274
i've have modified toggle.html so you can study it and suit it to your needs

Expert Comment

ID: 34143296

you can modifiy the anachor elemet. insted of div use it as td.
$("div")==> $("td")
Get real performance insights from real users

Key features:
- Total Pages Views and Load times
- Top Pages Viewed and Load Times
- Real Time Site Page Build Performance
- Users’ Browser and Platform Performance
- Geographic User Breakdown
- And more

LVL 19

Accepted Solution

Bardobrave earned 1000 total points
ID: 34143604
Or even easier... you can get a DIV inside your TDs, if you wrap each of your images inside a div you won't need to change the jquery code

Expert Comment

ID: 34143761
First I suggested you to use div instead of td. but still if you want to use td then you can use the code I have attached.

Expert Comment

ID: 34143802
only change the anachor to td insted of div.
and dont touch the any other html code. its the simplest way to make it work.

Author Comment

ID: 34144428
@Bardobrave : thanks a lot .that was the simplest and most effective solution . I just have one small problem .by default it is hidden because of the css used
  div { background:#def3ca; margin:3px; width:80px;
  display:none; float:left; text-align:center; }

if i use it in my page,it will hide the entire page so  
how do i change it so that it hides only some icons and not the entire page .?
LVL 19

Expert Comment

ID: 34144574
There are different solutions to this, depending on what do you want to do and how to make it.

What I would probably do will be the following:

Give my wrapping divs a class, say "hideable".

On the css file apply the styles only to those class divs

.hideable { background:#def3ca; margin:3px; width:80px;
  display:none; float:left; text-align:center; }

If you want your divs to don't be hidden by default you can change the display:none to display:block, surely jquery will manage the show/hide effect in an independent way from the starting situation.

If you want some icons active by default, some other inactive by default and that every icon can be hided you can play with two different classes, one for hidding and another for showed, and change your jquery to swap the class of the clicked div

Expert Comment

ID: 34144642
to apply the jqueryeffect the requried selected tags.

follow the follwoing methode of using selector..
what ever contents to be required to hide put inside the one div called this div as name id=myeffectdiv
then inside this div add separate td tags for each elememt..waht you have presently

then in jquery use selector which will apply the effect to the td's present inside the div id id=myeffectdiv


Featured Post

Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses four methods for overlaying images in a container on a web page
Find out what you should include to make the best professional email signature for your organization.
In this tutorial viewers will learn how to position items using CSS's three positioning types Create a new HTML document with an internal stylesheet.: Create another div in CSS and name it Absolute : Type "position:absolute;" and "top:10px; left:50p…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question