MediaWiki:Common.js: Difference between revisions
m Require div.dialogue-thread |
Streamlined coding for hints Tag: Reverted |
||
Line 3: | Line 3: | ||
/* Custom animated collapsibles: */ | /* Custom animated collapsibles: */ | ||
$(document).ready(function() { | |||
$('.custom-collapsible-link').on('click', function() { | |||
$parentSp = $(this).parent('.custom-collapsible'); | |||
if ($parentSp.hasClass('active')) { | |||
// hide | |||
$parentSp.removeClass('active'); | |||
$parentSp.next('.custom-collapsible-content').slideUp(200); | |||
} else { | |||
// show | |||
$parentSp.addClass('active'); | |||
$parentSp.next('.custom-collapsible-content').slideDown(200); | |||
} | |||
}); | }); | ||
} | }); | ||
Revision as of 12:07, 25 November 2023
/* Any JavaScript here will be loaded for all users on every page load. */ /* Custom animated collapsibles: */ $(document).ready(function() { $('.custom-collapsible-link').on('click', function() { $parentSp = $(this).parent('.custom-collapsible'); if ($parentSp.hasClass('active')) { // hide $parentSp.removeClass('active'); $parentSp.next('.custom-collapsible-content').slideUp(200); } else { // show $parentSp.addClass('active'); $parentSp.next('.custom-collapsible-content').slideDown(200); } }); }); /* Custom hex strings */ var hss = document.getElementsByClassName("hex-string"); var i; for (i = 0; i < hss.length; i++) { hss[i].addEventListener("click", function() { if (this.dataset.state === 'hex') { // Switch to English this.querySelector('.hex-string-content').innerText = this.dataset.text; this.dataset.state = 'text'; } else { // Switch to Hex this.querySelector('.hex-string-content').innerText = this.dataset.hex; this.dataset.state = 'hex'; } }); } /* Custom collapsibles for social media thread */ $(document).ready(function() { var depth; var stillCollapsing, stillExpanding; // Attach the click event $('div.dialogue-thread span.dialogue-choice-button').on('click', chooseDialogue); // Hide initially $('div.dialogue-thread ul').each(initialDeepHide); function initialDeepHide() { if ($(this).is('ul')) { $(this).children('li').each(initialDeepHide); } else if ($(this).is('li')) { if ($(this).children('ul').length) { $(this).children('ul').each(initialDeepHide); } else { myDepth = 1 + $(this).parents('li').length; if (myDepth > 1) { $(this).hide(); } } } } function deepCollapse() { if ($(this).is('ul')) { $(this).children('li').each(deepCollapse); } else if ($(this).is('li')) { if ($(this).children('ul').length) { $(this).children('ul').each(deepCollapse); } else { myDepth = 1 + $(this).parents('li').length; if (myDepth <= depth) { stillCollapsing = false; } if (stillCollapsing) { $(this).slideUp(); // Also set any sub-options to be collapsed $(this).find('span.dialogue-choice-button').data('collapsed', true).text('Expand'); } } } } function deepExpand() { if ($(this).is('ul')) { $(this).children('li').each(deepExpand); } else if ($(this).is('li')) { if ($(this).children('ul').length) { $(this).children('ul').each(deepExpand); } else { myDepth = 1 + $(this).parents('li').length; if (myDepth <= depth) { stillExpanding = false; } if (stillExpanding && myDepth == depth+1) { $(this).slideDown(); } } } } function chooseDialogue() { var $topLevelUl = $(this).parents('li').last().parent('ul'); depth = 1 + $(this).parent('li').parents('li').length; //$topLevelUl.nextAll('ul').each(diveDeepUl); if ($(this).data('collapsed') === true) { $(this).data('collapsed', false); $(this).text('Collapse'); stillExpanding = true; $topLevelUl.nextAll('ul').each(deepExpand); } else { $(this).data('collapsed', true); $(this).text('Expand'); stillCollapsing = true; $topLevelUl.nextAll('ul').each(deepCollapse); } } });