well, that is a snippet that needs to be adjusted to the menu classes in your layout ....
the point more or less is: you have a "menu" that has no children.... changing the highlight on the clicked one leaves you nowhere, cause once a link has been clicked you jump to the other page, so the second snippet is the only one where the functionality actually works (i.e. applying a different style on the page the user is in). To do that, you must assign the class looking at where the page "stands", that is location.pathname. jQuery has a nice selector syntax where anything that is prefixed with $ means "that ends with this string". So, assuming you are using the scaffolding app from trunk ..... <script> jQuery(function() { var path = location.pathname.substring(1); if ( path ) jQuery('ul.nav a[href$="'+path+'"]').closest('li').addClass( 'highlight'); }) </script> works The broken-down functionality is: - path is the current url - please, find all A elements within the <ul class="nav"> ( *jQuery(ul.nav a)*) - filter this set searching for the ones that have an href ending with the current location (i.e. the url of the page) *[href=$whatever]* - go up in the DOM until you find a li (*closest(li)*) - add a hihglight class (*addclass(highlight)*) On Tuesday, May 7, 2013 6:24:19 PM UTC+2, Omi Chiba wrote: > > Niphlod , thank you for the reply! > > Can you provide me actual code workis on new app? > I'm not sure where I should put the javascript and what value should I > specify for 'all a in the menu'. > > On Tuesday, May 7, 2013 11:05:27 AM UTC-5, Niphlod wrote: >> >> javascript ...... >> >> something like >> >> $('all a in the menu').click(function(e) { >> $('all a in the menu').removeClass('highlighted'); >> $(this).addClass('highlighted'); >> }) >> >> should work . >> >> You can even generalize it to highlight the current page url >> automatically. >> >> var path = location.pathname.substring(1); >> if ( path ) $('all a in menu[href$="' + path + '"]').closest('li'). >> addClass('highlight'); >> >> >> >> Il giorno martedì 7 maggio 2013 17:56:10 UTC+2, Omi Chiba ha scritto: >> >>> I have a following response.menu in my menu.py. By default Home is >>> highlighted but I want to highlight the menu clicked by the user. For >>> example, when user click contact, 'highlighted' class should be added to >>> contact and removed from home. >>> >>> response.menu = [ >>> (SPAN('Home', _class='highlighted'), False, URL('default', 'index'), >>> []), >>> (T('Order Status'), False, URL('default', 'orderstatus'), []), >>> (T('Q&A'), False, URL('default', 'qa'), []), >>> (T('Contact'), False, URL('default', 'contact'), []) >>> ] >>> >> -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.