MediaWiki:Common.js/SwitchInfobox.js

/* Any JavaScript here will be loaded for all users on every page load. */

/** * Switch Infobox -- Allows multiple infoboxes to be seamlessly switched. * Required template: http://runescapefanfiction.wikia.com/wiki/Template:Switch_infobox * Required stylesheet: http://runescapefanfiction.wikia.com/wiki/User:Nabz010/SwitchInfobox.css */

// Fixes a weird bug with the MW parser that adds lots of empty parapgraphs $( '.switch-infobox > p, .switch-infobox-triggers > p' ).each( function {   if ( $( this ).children( 'br' ).length ) {        $( this ).remove;    } else {        $( this ).replaceWith( this.innerHTML );    } } ); // Appends the switch triggers to every item $( '.switch-infobox' ).each( function {       // The switch triggers        var triggers = $( this ).children( '.switch-infobox-triggers' );

$( this ).children( '.item' ).find( 'caption' ).append( triggers ); } ); // Does the actual switching $( '.switch-infobox' ).find( '.switch-infobox-triggers' ).children( '.trigger' ).click( function { // The parent .switch-infobox of the clicked trigger var parentSwitchInfobox = $( this ).parents( '.switch-infobox' ); // Hides items showing parentSwitchInfobox.children( '.item.showing' ).removeClass( 'showing' ); // Show the relevant item parentSwitchInfobox.children( '.item[data-id="' + this.getAttribute( 'data-id' ) + '"]' ).addClass( 'showing' ); } ); // Finishes loading and makes switch infoboxes functional $( '.switch-infobox.loading' ).removeClass( 'loading' );