Recent Posts
- (02/24) Calling an Element from a Helper TAGS:CakephpWeb ProgrammingUsageTutorialExample
- (10/14) Forcing A Single Join in CakePHP PaginationTAGS:CakephpCakephp 13DatabaseErrorsHabtmMysqlMssqlWeb ProgrammingUsage
- (08/11) Inserting NOW() into MySQL Using CakePHPTAGS:CakephpDatabaseMysqlMssqlWeb ProgrammingUsage
- (08/07) Best PaginateCount for CakePHP - with Group By SupportTAGS:CakephpBehaviorsWeb ProgrammingUsageDatabaseExampleMysqlHabtmHack
- (04/03) CakePHP Error Messages Not Showing on FormTAGS:CakephpCakephp 13Web ProgrammingErrorsUsage
- (02/06) Sorting Paginated Results Using a Related Model Field in CakePHPTAGS:CakephpWeb ProgrammingUsageExample
- (11/02) Changing CakePHP's Model useTable on the FlyTAGS:CakephpWeb ProgrammingMysqlDatabaseExampleTutorial
- (10/18) The Funniest Error Message Ever - Thank You EclipseTAGS:EclipseWeb ProgrammingErrorsHumorWindowsUsageSoftwarePhpCakephp
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 3,493 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!
