Unobtrusive Show/Hide





9
Date Submitted Sun. Nov. 20th, 2005 8:56 AM
Revision 1 of 1
Helper poncho
Tags Hide | JavaScript | Show
Comments 0 comments
Unobtrusive Show/Hide
/****************
Begin showhide.js
****************/

function init() {
        if(!document.getElementsByClassName) return false;
    var optionalElements = document.getElementsByClassName('optional');
        var optionsShow = document.getElementsByClassName('showOptional');
    var optionsHide = document.getElementsByClassName('hideOptional');
       
        for (var i=0;i<optionalElements.length;i++) {
                optionalElements[i].style.display = 'none';
        }
       
        for (var j=0;j<optionsShow.length;j++) {
                optionsShow[j].onclick = function(){showElement(this);}
        }
       
        for (var k=0;k<optionsHide.length;k++) {
                optionsHide[k].onclick = function(){hideElement(this);}
        }
}

function showElement(obj) {
        var containerElements = obj.parentNode.parentNode.parentNode.getElementsByTagName('*');
       
        for (var i=0;i<containerElements.length;i++) {
                if(/optional/.test(containerElements[i].className)) {
                        containerElements[i].style.display = 'block';
                }
        }
}

function hideElement(obj) {
        var containerElements = obj.parentNode.parentNode.parentNode.getElementsByTagName('*');
       
        for (var i=0;i<containerElements.length;i++) {
                if(/optional/.test(containerElements[i].className)) {
                        containerElements[i].style.display = 'none';
                }
        }
}

window.onload = init;

Mark Thompson

www.defaultstate.com/
Perfecting the art of breaking stuff!

Comments

There are currently no comments for this snippet.

Voting