Giaadaaaa

by BeNdErR

HTML

<div id="gfloris-container">

  <ul id="menu">
    <li class="parent"><a href="/products">TUTTI</a></li>
    <li class="parent"><a href="/category/pronta-consegna">PRONTA CONSEGNA</a></li>
    <li class="parent"><a href="#">BIJOUX<span class="expand plus"></span></a>
      <ul class="child">
        <li><a href="/category/anelli">ANELLI</a></li>
        <li><a href="/category/collane">COLLANE</a></li>
        <li><a href="/category/spille">SPILLE</a></li>
      </ul>
    </li>
    <li class="parent"><a href="#">CERAMICA<span class="expand plus"></span></a>
      <ul class="child">
        <li class="parent"><a href="#">PIATTI
       <span class="expand plus"></span></a>
          <ul class="child">
            <li><a href="/category/piatti-piccoli">PIATTI PICCOLI</a></li>
            <li><a href="/category/piatti-medi">PIATTI MEDI</a></li>
            <li><a href="/category/piatti-grandi">PIATTI GRANDI</a></li>
            <li><a href="/category/portatorte">PORTATORTE</a></li>
          </ul>
        </li>
        <li class="parent"><a href="#">TAZZE<span class="expand plus"></span></a>
          <ul class="child">
            <li><a href="/category/tazzine-caffe">TAZZINE CAFFÈ</a></li>
            <li><a href="/category/tazze-te-piatto">TAZZE TÈ</a></li>
            <li><a href="/category/tazze-mug">TAZZE MUG</a></li>
            <li><a href="/category/tazza-caffellatte-piatto">TAZZE CAFFELLATTE</a></li>
          </ul>
        </li>
        <li class="parent"><a href="#">PER LA CASA<span class="expand plus"></span></a>
          <ul class="child">
            <li><a href="/category/cache-pot">CACHEPOT</a></li>
            <li><a href="/category/portagioie">PORTAGIOIE</a></li>
            <li><a href="/category/portaincenso">PORTAINCENSO</a></li>
            <li><a href="/category/orologi">OROLOGI</a></li>
            <li><a href="/category/portatovaglioli"> PORTATOVAGLIOLI </a></li>
            <li><a href="/category/per-gli-amici-animals">PER GLI AMICI...

CSS

#gfloris-container .parent {
  display: block;
  position: relative;
  float: left;
  line-height: 30px;
}

#gfloris-container .parent a {
  margin: 10px;
  text-decoration: none;
  color: black;
}

/*#gfloris-container .parent:hover>ul {
  position: absolute;
  z-index: 9999;
}*/

#gfloris-container .child {
  display: none;
  background-color: white;
}

#gfloris-container .child.visible {
  display: block;
  position: absolute;
  z-index: 9999;
}

#gfloris-container .child li {
  line-height: 30px;
  border: #CCC 1px solid;
  width: 100%;
}

#gfloris-container .child li a {
  color: #000000;
}

#gfloris-container ul {
  list-style: none;
  margin: 0;
  padding: 0px;
  min-width: 10em;
}


/*#gfloris-container .expand {
  font-size: 12px;
  float: right;
  margin-right: 5px;
}*/

#gfloris-container ul li:not(:last-child)::after {
  content: none !important;
}

#gfloris-container ul ul ul {
  left: 100%;
  top: 0;
  margin-left: 1px;
}

.expand.plus:before {
  content: '\00BB';
}

.expand.minus:before {
  content: '\00BB';
}

@media only screen and (max-width: 500px) {
  #menu li {
    width: 100%;
    text-align: center;
    border-bottom: 1px solid lightgray;
  }

  #gfloris-container .child li {
    width: 100%;
  }

  #gfloris-container .child.visible {
    display: inline;
    position: static;
    z-index: auto;
  }

  #gfloris-container ul ul ul {
    left: auto;
    top: auto;
    margin-left: auto;
  }
  
  /*.expand {
    border: 1px solid black;
    border-radius: 50%;
    margin-left: 15px;
  }*/
  
  .expand.plus:before {
    content: '\2661';
  }

  .expand.minus:before {
    content: '\2661';
    color: red;
  }
}

JavaScript

$("#gfloris-container .parent").on("click", function(e) {
  e.stopPropagation();
  var $ul = $(this).find("> ul.child");
  if ($ul.hasClass("visible")) {
    closeMenu($ul);
  } else {
    openMenu($ul);
    closeOtherMenus($ul);
  }
});

function closeMenu($menu) {
  $menu.find(".child.visible").removeClass("visible");
  $menu.removeClass("visible");
  $menu.closest(".parent").find("> a .expand").removeClass("minus").addClass("plus");
}

function openMenu($menu) {
  $menu.addClass("visible");
  $menu.closest(".parent").find("> a .expand").removeClass("plus").addClass("minus");
}

function closeOtherMenus($openedMenu){
	var hMenus = [];
  var $currentMenu = $openedMenu;
  while($currentMenu.length > 0 && $currentMenu.hasClass("child")) {
  	hMenus.push($currentMenu[0]);
    $currentMenu = $currentMenu.parent().closest("ul.child, ul.menu");
  }
  if ($currentMenu.length) hMenus.push($currentMenu);
  console.log(hMenus);
  var $openedMenus = $("#menu").find("ul.child.visible");
  
  for(var x = 0; x < $openedMenus.length; x++){
  	if (hMenus.indexOf($openedMenus[x]) < 0) {
    	closeMenu($($openedMenus[x]));
    }
  }
}