Skip to content

Instantly share code, notes, and snippets.

@andreasnymark
Created May 5, 2014 17:12
Show Gist options
  • Save andreasnymark/fbb925f6e6662ea8373f to your computer and use it in GitHub Desktop.
Save andreasnymark/fbb925f6e6662ea8373f to your computer and use it in GitHub Desktop.
var modal=function(){"use strict";var e={button:".Button",close:".Close",all:"",event:"click",module:".FormModal",attrState:"data-state",stateExpanded:"is-expanded",stateCollapsed:"is-collapsed"},t=function(t){var t=t||window.event;t.preventDefault?t.preventDefault():t.returnValue=!1;var n=t.target||t.srcElement,r=n.parentNode||n.parentElement,i=r.getAttribute(e.attrState),s=n.previousSibling||n.nextSibling;i===e.stateExpanded?r.setAttribute(e.attrState,e.stateCollapsed):r.setAttribute(e.attrState,e.stateExpanded);s.className=s.className},n=function(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent("on"+t,n)},r=function(){var t=document.querySelectorAll(e.button),r=document.querySelectorAll(e.close);if(t.length>0)for(var i=0;i<t.length;i++){var s=t[i];s.parentNode.setAttribute(e.attrState,e.stateCollapsed);n(s,e.event,modal.toggle)}if(r.length>0)for(var i=0;i<r.length;i++){var o=r[i];n(o,e.event,function(){var t=document.querySelectorAll(e.module);for(var n=0;n<t.length;n++)t[n].setAttribute(e.attrState,e.stateCollapsed)})}};return{toggle:t,init:r}}();modal.init();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment