When you open the menu, you should listen for clicks on document. Then when the document is clicked you close the popup (and you remove the listener on the document as well).
PS: keep your listener on the menu-container as well ;)
Here is an example you can use (I edited your fiddle) :
(function(){
//Remember if the menu is opened or not
var menuOpened = false;
var menuElement = document.getElementById('menu_control');
var menuContainer = document.getElementById('menu-standard');
// Add click listener on menu icon
menuElement.addEventListener('click', onMenu_click);
// Add click listener on menu
menuContainer.addEventListener('click', onMenuContainer_click);
function toggleMenu(){
menuOpened = !menuOpened;
if (menuOpened){
menuContainer.className += ' show_menu';
document.addEventListener('click', onDoc_click);
}
else{
menuContainer.className = menuContainer.className.replace('show_menu', '').trim();
document.removeEventListener('click', onDoc_click);
}
}
function onMenu_click(domEvent){
domEvent.stopPropagation();
toggleMenu();
}
function onDoc_click(domEvent){
domEvent.stopPropagation();
toggleMenu();
}
function onMenuContainer_click(domEvent){
domEvent.stopPropagation();
}
})();
.nav,
.menu_control{font-size:16px;line-height:23px;}
.nav{display:none;position:relative;width:219px;height:0;top:7px;list-style:none;z-index:9;background-color:#666;color:#fff}
.nav .sub-menu{list-style:none;padding-left:14px;}
.nav .sub-menu li{width:192px;background-color:#666;}
.nav .sub-menu .current-menu-item > a{background-color:#666;}
.nav a,
.show_menu{display:block;}
.nav a{color:#fff;padding:7px 14px;}
.nav a:hover{color:white;background-color:#999;}
.nav .current-menu-item > a{color:#fff;background-color:#666;cursor:text;}
.nav li{background-color:#666;}
.menu_control{display:block;color:#111111;cursor:pointer;margin:7px -27px 0 -27px;padding-right:27px;padding-left:27px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}
.navicon-line{width:32px;height:4px;border-radius:1px;margin-bottom:5px;background-color:#333;}
<span id="menu_control" class="menu_control">
<div class="navicon-line"></div>
<div class="navicon-line"></div>
<div class="navicon-line"></div>
</span>
<ul id="menu-standard" class="nav">
<li id="menu-item"><a href="/">Home</a></li>
<li id="menu-item"><a href="#">test</a>
<ul class="sub-menu">
<li id="menu-item"><a href="#">test</a></li>
<li id="menu-item"><a href="#">test</a></li>
<li id="menu-item"><a href="#">test</a></li>
<li id="menu-item"><a href="#">test</a></li>
</ul>
</li>
<li id="menu-item"><a href="#">test</a></li>
</ul>
<br />
Content Content Content
It's not the best way to do it because you add several click listeners... You could have just one listener on the doc and do different things depending on the target of the event...