User:Locke/common.js: Difference between revisions

Want an adless experience? Log in or Create an account.
deselect tabs in all tabsets sharing selector, not just in the current tabset
(don't break when selector is 0)
(deselect tabs in all tabsets sharing selector, not just in the current tabset)
Line 33: Line 33:
   var tab = $( this );
   var tab = $( this );
   var tabset = tab.closest( '.zdw-tabset' );
   var tabset = tab.closest( '.zdw-tabset' );
  var selector = tabset.data( 'tabSelector' );


   // first check if we care about this event
   // first check if we care about this event
Line 38: Line 39:
     return;
     return;
   }
   }
  // activate the tab
  tabset.find( '.zdw-tab' ).removeClass( 'active' );
  tab.addClass( 'active' );


   // get target tabcontainer
   // get target tabcontainer
Line 53: Line 50:
       return $( this ).closest( '.zdw-tabcontainer' ).is( container ); // that aren't nested inside other containers
       return $( this ).closest( '.zdw-tabcontainer' ).is( container ); // that aren't nested inside other containers
     } );
     } );
  // activate the tab
  tabsets.filter( '[data-tab-selector="' + selector + '"]' ).find( '.zdw-tab' ).removeClass( 'active' );
  tab.addClass( 'active' );


   // get selections
   // get selections
Line 63: Line 64:


   // make sure this tabset takes priority in case multiple tabsets use the same selector
   // make sure this tabset takes priority in case multiple tabsets use the same selector
  var selector = tabset.data( 'tabSelector' );
   selections[ selector == undefined ? '' : selector ] = tab.data( 'tabSelection' );
   selections[ selector == undefined ? '' : selector ] = tab.data( 'tabSelection' );


Line 73: Line 73:
   // show the selected content
   // show the selected content
   var selectors = Object.keys( selections ).map( function( s ) {
   var selectors = Object.keys( selections ).map( function( s ) {
console.log(s, selections[s]);
     return '[data-tab-content-' + s + '="' + selections[ s ] + '"]';
     return '[data-tab-content-' + s + '="' + selections[ s ] + '"]';
   } );
   } );
console.log(selectors.join(''));
   container.find( '.zdw-tabcontent' + selectors.join( '' ) ).show();
   container.find( '.zdw-tabcontent' + selectors.join( '' ) ).show();
} );
} );
} );
} );