User:Locke/common.js: Difference between revisions
Jump to navigation
Jump to search
Want an adless experience? Log in or Create an account.
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
/* | |||
Three different behaviors desired: | |||
1. all content on one page | |||
-all content is initially visible for no-js. js hides all except "default" | |||
2. content is on subpages, transcluded | |||
-"no-js" content is initially visible, the rest hidden. js hides "no-js" and shows "default" | |||
3. ajax | |||
-"no-js" content is initially visible. js removes "no-js" and calls for "default" | |||
*/ | |||
var tabstate = {}; | var tabstate = {}; | ||
$('.tabset').each( function() { | $('.tabset').each( function() { | ||
var target = $(this).attr('tab-target'); | var target = $(this).attr('tab-target'); | ||
var selector = $(this).attr('tab-selector'); | var selector = $(this).attr('tab-selector'); | ||
tabstate[target] = | tabstate[target] = {}; | ||
$(this).find(' | $(this).find('.tab').each( function() { | ||
var selection = $(this).attr('tab-selection'); | var selection = $(this).attr('tab-selection'); | ||
//TODO defaults | //TODO defaults, no-js, ajax | ||
$(this).on('click', function() { | $(this).on('click', function() { | ||
$('#'+target+' div').hide(); | $('#'+target+' div').hide(); |
Revision as of 01:18, November 13, 2014
/* Three different behaviors desired: 1. all content on one page -all content is initially visible for no-js. js hides all except "default" 2. content is on subpages, transcluded -"no-js" content is initially visible, the rest hidden. js hides "no-js" and shows "default" 3. ajax -"no-js" content is initially visible. js removes "no-js" and calls for "default" */ var tabstate = {}; $('.tabset').each( function() { var target = $(this).attr('tab-target'); var selector = $(this).attr('tab-selector'); tabstate[target] = {}; $(this).find('.tab').each( function() { var selection = $(this).attr('tab-selection'); //TODO defaults, no-js, ajax $(this).on('click', function() { $('#'+target+' div').hide(); tabstate[target][selector] = selection; var content = tabstate[target].join(' '); $('#'+target+' div[tab-content="'+content+'"]').show(); }); }); }); function DataLoader( basepage, target ) { this.loadData = function( subpage ) { mw.loader.using( 'mediawiki.api', function () { (new mw.Api()).ajax( { action: 'parse', format: 'json', prop: 'text', page: basepage + '/' + subpage } ).done ( function ( data ) { $('#' + target).empty(); $('#' + target).append( data['parse']['text']['*'] ); } ); } ); }; } var loader = new DataLoader( 'User:Locke/Sandbox', 'dl-target' ); loader.loadData( 'Template' );