main-menu.js 957 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. var mainMenu = (function() {
  2. var $listItems = $( '#mainmenu > ul > li' ),
  3. $menuItems = $listItems.children( 'a' ),
  4. $body = $( 'body' ),
  5. current = -1;
  6. function init() {
  7. $menuItems.on( 'click', open );
  8. $listItems.on( 'click', function( event ) { event.stopPropagation(); } );
  9. }
  10. function open( event ) {
  11. var $item = $( event.currentTarget ).parent( 'li.has-submenu' ),
  12. idx = $item.index();
  13. if($item.length != 0){
  14. if( current !== -1 ) {
  15. $listItems.eq( current ).removeClass( 'mainmenu-open' );
  16. }
  17. if( current === idx ) {
  18. $item.removeClass( 'mainmenu-open' );
  19. current = -1;
  20. }
  21. else {
  22. $item.addClass( 'mainmenu-open' );
  23. current = idx;
  24. $body.off( 'click' ).on( 'click', close );
  25. }
  26. return false;
  27. }
  28. else window.location = $item.find('a').attr('href');
  29. }
  30. function close( event ) {
  31. $listItems.eq( current ).removeClass( 'mainmenu-open' );
  32. current = -1;
  33. }
  34. return { init : init };
  35. })();