MediaWiki:Gadget-CollapseElements.js

Aus Wikibooks

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
//<nowiki>

// Faster Collapsible Containers from [[en:MediaWiki:Common.js/CollapseElements.js]] which is maintained by [[en:User:Darklama]].

// images to use for hide/show states
var collapse_action_hide = '//upload.wikimedia.org/wikipedia/commons/1/10/MediaWiki_Vector_skin_action_arrow.png';
var collapse_action_show = '//upload.wikimedia.org/wikipedia/commons/4/41/MediaWiki_Vector_skin_right_arrow.png';

// toggle state of collapsible boxes
function collapsible_boxes()
{
  function insert_arrow(element, which) {
    var first_child = element.children().first();

    if (first_child.length == 0 || first_child.css("display") != "block") {
      element.prepend('<span class="action"><a><img src="'+which+'" /></a></span>');
    } else {
      insert_arrow(first_child, which);
    }
  }

  $('div.collapsible').each( function() {
    var $that = $(this), css_width = $that.css('width'), attr_width = $that.attr('width');
    var which = $that.hasClass('selected') ? collapse_action_show : collapse_action_hide;

    if ( (!css_width || css_width == 'auto') && (!attr_width || attr_width == 'auto') ) {
      $that.css('width', $that.width() );
    }

    $(this).children('.title').each( function() {
      insert_arrow($(this), which);

      $(this).click( function() {
        var which = $that.toggleClass('selected').hasClass('selected')
          ? collapse_action_show : collapse_action_hide;
        $(this).find('span.action img').attr('src', which);
        if ( which == collapse_action_show ) {
          $(this).siblings(':not(.title)').stop(true, true).fadeOut();
        } else {
          $(this).siblings(':not(.title)').stop(true, true).fadeIn();
        }
      }).click();
    });
  });

  $( "table.collapsible" ).each( function() {
    var $table = $(this), rows = this.rows, cell = rows.item(0).cells.item(0);
    var which = $that.hasClass('selected') ? collapse_action_show : collapse_action_hide;
    var css_width = $table.css('width'), attr_width = $table.attr('width');

    if ( (!css_width || css_width == 'auto') && (!attr_width || attr_width == 'auto') ) {
      $table.css('width', $table.width() );
    }

    $(cell).prepend('<span class="action"><a><img src="'+which+'" /></a></span>');
    $(rows.item(0)).click( function() {
      var which = $table.toggleClass('selected').hasClass('selected')
        ? collapse_action_show : collapse_action_hide;
      $(cell).find('span.action img').attr('src', which);
      if ( which == collapse_action_show ) {
        $(rows).next().stop(true, true).fadeOut();
      } else {
        $(rows).next().stop(true, true).fadeIn();
      }
    }).click();
  });
}

$(document).ready( collapsible_boxes );

//</nowiki>