Advertisement
Guest User

Untitled

a guest
Jul 25th, 2016
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*jshint esversion: 6 */
  2. function solve() {
  3.     return function(selector) {
  4.  
  5.         if (typeof(selector) !== 'string' && !(selector instanceof HTMLElement)) {
  6.             throw "The input is neither an element nor a string";
  7.         }
  8.         if (document.getElementById(selector) === null) {
  9.             throw "Nothing selected.....";
  10.         }
  11.         // var buttons = document.getElementsByClassName('button');
  12.         var content = document.getElementsByClassName("content");
  13.         var contentAndButtons = document.querySelectorAll('.button, .content');
  14.         // indexing click event on all buttons and adding Id for later
  15.         for (var index = 0, len = contentAndButtons.length; index < len; index += 1) {
  16.             if (contentAndButtons[i].className === "button") {
  17.                 contentAndButtons[index].innerHTML = 'hide';
  18.                 contentAndButtons[index].addEventListener('click', ButtonClicked, false);
  19.             }
  20.             contentAndButtons[index].id = index;
  21.         }
  22.  
  23.         function ButtonClicked(button) {
  24.             var buttonIndex = this.id;
  25.             for (var i = buttonIndex, len = contentAndButtons.length; i < len; i++) {
  26.                 var element = contentAndButtons[i];
  27.                 var button = contentAndButtons[buttonIndex];
  28.  
  29.                 if (element.className === "content") {
  30.                     if (element.style.display === '') {
  31.                         button.innerHTML = 'show';
  32.                         element.style.display = 'none';
  33.                     } else if (element.style.display === 'none') {
  34.                         element.style.display = '';
  35.                         button.innerHTML = 'hide';
  36.                     }
  37.                     break;
  38.                 }
  39.             }
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement