MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus WIKI LAUER-FISCHER GmbH
| Zeile 2: | Zeile 2: | ||
jQuery(document).ready(function () { | jQuery(document).ready(function () { | ||
| + | "use strict" | ||
// Register slideToggle() on each category. | // Register slideToggle() on each category. | ||
| + | var makeOnClick = generateMakeOnclick(); | ||
| + | |||
jQuery("div.generated-sidebar.portlet").each(makeOnClick); | jQuery("div.generated-sidebar.portlet").each(makeOnClick); | ||
makeOnClick.defaultExpanded = false; | makeOnClick.defaultExpanded = false; | ||
| Zeile 9: | Zeile 12: | ||
// Registers the slideToggle() function on this and sets up the cookie | // Registers the slideToggle() function on this and sets up the cookie | ||
| − | function | + | function generateMakeOnClick() { |
"use strict"; | "use strict"; | ||
| − | if (jQuery(this).children("h3").is(":hidden")) { | + | var n = 0; |
| − | + | var makeOnClick = function () { | |
| − | + | if (jQuery(this).children("h3").is(":hidden")) { | |
| + | return; | ||
| + | } | ||
| − | + | var k = n | |
| − | |||
| − | |||
| − | + | n++ | |
| − | |||
| − | |||
| − | + | jQuery(this).attr({ "role": "button", "type": "button" }); | |
| − | + | var expanded = makeOnClick.defaultExpanded | |
| − | + | var cookie = getCookie(cookieName + k.toString()); | |
| − | + | if (cookie === null) { | |
| + | setStateCookie(k, expanded); | ||
| + | } | ||
| + | else { | ||
| + | expanded = cookie === "1"; | ||
| + | } | ||
| − | + | jQuery(this).children("h3").attr("aria-pressed", expanded ? "true" : "false"); | |
| + | jQuery(this).children("h3").addClass(expanded ? "nav-expanded" : "nav-collapsed"); | ||
| − | + | if (expanded == false) { | |
| − | + | jQuery(this).children("div").hide(); | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | + | jQuery(this).children("h3").click(function () { | |
| − | + | var newExpanded = jQuery(this).attr("aria-pressed") !== "true"; | |
| + | setStateCookie(k, newExpanded); | ||
| − | + | if (newExpanded) { | |
| − | + | jQuery(this).removeClass("nav-collapsed"); | |
| − | + | jQuery(this).addClass("nav-expanded"); | |
| + | } | ||
| + | else { | ||
| + | jQuery(this).removeClass("nav-expanded"); | ||
| + | jQuery(this).addClass("nav-collapsed"); | ||
| + | } | ||
| − | + | jQuery(this).attr("aria-pressed", newExpanded ? "true" : "false"); | |
| − | |||
| − | |||
| − | + | jQuery(this).parent().children("div.pBody:first-of-type").slideToggle('fast'); | |
| − | jQuery(this). | + | }) |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | } | ||
| − | |||
| − | |||
| − | + | makeOnClick.defaultExpanded = true | |
| − | |||
| + | return makeOnClick | ||
} | } | ||
function getCookie(key) { | function getCookie(key) { | ||
Version vom 13. April 2018, 14:04 Uhr
var cookieName = "sectionVisible"
jQuery(document).ready(function () {
"use strict"
// Register slideToggle() on each category.
var makeOnClick = generateMakeOnclick();
jQuery("div.generated-sidebar.portlet").each(makeOnClick);
makeOnClick.defaultExpanded = false;
jQuery("#p-tb").each(makeOnClick);
});
// Registers the slideToggle() function on this and sets up the cookie
function generateMakeOnClick() {
"use strict";
var n = 0;
var makeOnClick = function () {
if (jQuery(this).children("h3").is(":hidden")) {
return;
}
var k = n
n++
jQuery(this).attr({ "role": "button", "type": "button" });
var expanded = makeOnClick.defaultExpanded
var cookie = getCookie(cookieName + k.toString());
if (cookie === null) {
setStateCookie(k, expanded);
}
else {
expanded = cookie === "1";
}
jQuery(this).children("h3").attr("aria-pressed", expanded ? "true" : "false");
jQuery(this).children("h3").addClass(expanded ? "nav-expanded" : "nav-collapsed");
if (expanded == false) {
jQuery(this).children("div").hide();
}
jQuery(this).children("h3").click(function () {
var newExpanded = jQuery(this).attr("aria-pressed") !== "true";
setStateCookie(k, newExpanded);
if (newExpanded) {
jQuery(this).removeClass("nav-collapsed");
jQuery(this).addClass("nav-expanded");
}
else {
jQuery(this).removeClass("nav-expanded");
jQuery(this).addClass("nav-collapsed");
}
jQuery(this).attr("aria-pressed", newExpanded ? "true" : "false");
jQuery(this).parent().children("div.pBody:first-of-type").slideToggle('fast');
})
}
makeOnClick.defaultExpanded = true
return makeOnClick
}
function getCookie(key) {
"use strict";
var cookieQuery = document.cookie.match('(?:^|;)\\s*' + key + '\\s*=\\s*([^;]+)');
return cookieQuery === null ? null : cookieQuery.pop();
}
// Writes the state of the k-th section into a cookie.
function setStateCookie(k, expanded) {
"use strict";
var now = new Date();
now.setFullYear(now.getFullYear() + 3);
var expirationDate = now.toUTCString();
var cookie = cookieName + k.toString() + "=" + (expanded ? "1" : "0") + "; Expires=" + expirationDate + "; path=/";
document.cookie = cookie;
}