JSFiddle - React, Tailwind, and code Playground

by John Doe

HTML

<nav>
    <ul>
        <li><a href="#">Главная</a>

            <li class="sub"><a href="#" title="test">Товары</a>

                <ul class="sub-menu">
                    <li>Ссылка 1</li>
                    <li>Ссылка 2</li>
                    <li>Ссылка 3</li>
                </ul>
            </li>
            <li class="sub"><a href="#" title="test">блог</a>

                <ul class="sub-menu">
                    <li>Ссылка 3</li>
                    <li>Ссылка 4</li>
                    <li>Ссылка 5</li>
                </ul>
            </li>
    </ul>
</nav>

CSS

* {
    margin:0;
    padding:0;
}
.sub-menu {
    display:none;
    background:#fff;
}
.sub-menu li {
    padding:10px;
    width:110px;
    background:#ccc;
    border:1px solid #fff;
    margin:0;
}
.open {
    position:absolute;
    top:23px;
    left:0;
    display:inline-block;
}
li {
    list-style-type:none;
    text-transform: uppercase;
    margin-left:15px;
}
nav > ul >li {
    display:inline-block;
}
.sub {
    position:relative;
}
nav {
    padding:5px 20px;
    background:#333;
}
a {
    color:#fff;
    cursor:pointer;
}
body {
    background:#f1f1f1;
    font-family:Arial, sans-serif;
}
.sub > .active {
    background:#fff;
    color:#444;  
}

JavaScript

$('.sub > a').on('click', function () { 
    $(this).next().toggleClass('open');
    $(this).toggleClass('active');
})

$(document).mouseup(function (e) {
    var container = $(".sub-menu");
    if (container.has(e.target).length === 0) {
        $('.sub-menu').removeClass('open');
        $('.sub > .active').removeClass('active');
    }
});