Difference between revisions of "MediaWiki:Common.js"
From Discovery Wiki
Jump to navigationJump to search (Added two event functions (DW_eventAttach, DW_hookToElement) and a function for Template:SpoilerBox (DW_toggleVisibility)) |
|||
Line 26: | Line 26: | ||
/* Function for Template:SpoilerBox */ | /* Function for Template:SpoilerBox */ | ||
function DW_toggleVisibility (obj) { | function DW_toggleVisibility (obj) { | ||
− | var container = obj.parentNode.getElementsByTagName('div').item(0); | + | var container = obj.parentNode.parentNode.getElementsByTagName('div').item(0); |
if (!container.style.display || container.style.display == 'block') { | if (!container.style.display || container.style.display == 'block') { | ||
container.style.display = 'none'; | container.style.display = 'none'; | ||
Line 35: | Line 35: | ||
} | } | ||
} | } | ||
− | addOnloadHook(function () { DW_hookToElement(' | + | addOnloadHook(function () { DW_hookToElement('span', 'dwspoiler', 'click', function () { DW_toggleVisibility(this); }); }); |
Revision as of 23:10, 12 July 2009
/* Any JavaScript here will be loaded for all users on every page load. */ /* Event attach functions. Use DW_hookToElement to hook functions to browser events for certain elements. */ function DW_eventAttach (obj, event, handler) { if (obj.addEventListener) { obj.addEventListener(event, handler, false); } else if (obj.attachEvent) { var r = obj.attachEvent('on' + event, handler); } else { obj['on' + event] = handler; } } function DW_hookToElement (el, n, ev, func) { var el_list = document.getElementsByTagName(el); var el_cur; for (var i = 0, l = el_list.length; i < l; i++){ el_cur = el_list[i]; if (el_cur.name && el_cur.name == n) { DW_eventAttach(el_cur, ev, func); } } } /* Function for Template:SpoilerBox */ function DW_toggleVisibility (obj) { var container = obj.parentNode.parentNode.getElementsByTagName('div').item(0); if (!container.style.display || container.style.display == 'block') { container.style.display = 'none'; obj.innerHTML = 'Show'; } else { container.style.display = 'block'; obj.innerHTML = 'Hide'; } } addOnloadHook(function () { DW_hookToElement('span', 'dwspoiler', 'click', function () { DW_toggleVisibility(this); }); });