Recent Posts
- (09/10) Fixing Warning: the ECDSA host key for 'github.com' differs from the key for the IP addressTAGS:Web Server Admin
- (12/26) CakePHP 3 - Getting List of Column Definitions from a Table (like schema())TAGS:CakephpCake3
- (09/14) Change Order of Loaded Behaviors in CakePHP 3TAGS:Cake3CakephpWeb ProgrammingPhp
- (05/29) CakePHP 3 - Accept JSON Header Only Working When Debug FalseTAGS:Web ProgrammingCakephpCake3
- (05/23) Remove All Events from Google Calendar (Reset Calendar)TAGS:Web ProgrammingPhp
- (11/08) Google Tag Manager (GTM) Not Firing Default PageView EventTAGS:Web ProgrammingJavascriptGoogle Tag Manager
- (10/13) In PHP, how do you get __toString() Magic Method Result without calling echo?TAGS:CakephpCake3Cakephp 13PhpWeb Programming
- (11/14) Getting output from shell_exec() at all timesTAGS:Web ProgrammingWeb Server Admin
Subscribe to my feed
MainelyDesign.com Blog
Jquery Direct Descendant Selector (using the >)
Posted on 11/17/2009 at 01:08 pm by Kevin Wentworth
Viewed 14,808 times | 0 comments
I'd been struggling with a very simple accordion menu script. The problem was that I couldn't stop all of the links from returning false, when I only wanted to top link to return false. Let me show you my code:
- $('div#sideNav li:has(ul) a').click(function() {
- return false;
- });
What was going on (and correctly I might add) was all links contained in an li with a ul would return false, and wouldn't follow the link. I wrote this convoluted function to parse out the href and change the window location:
- $('div#sideNav li ul li a').bind('click', function() {
- window.location = $(this).attr('href');
- });
But I didn't like that either. Too much code for something that should be easily controlled by Jquery. Turns out, I hadn't been using the descendent selector: the '>' in the $() selector function.
It's all about the > dummy!
When I changed my code just slightly, so only the direct descendent of the li:has(ul) > a would return false. Perfect, only affecting the one a, not all the a's in the ul.
- $('div#sideNav li:has(ul) > a').click(function() {
- return false;
- });
That's how I made my simple accoridion menu, turned bloated accordion menu, back into a simple accordion menu.
Tags for Jquery Direct Descendant Selector (using the >)
Comments for this Posting
No comments. Be the first to post a reply.
Sorry, comments are closed for this posting.
Please Email Kevin if you have any questions. Thanks!