JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css">
<div data-role="navbar" id="navbar">
    <ul>
        <li id="1"><a>Item 1</a></li>
        <li id="2"><a>Item 2</a></li>
        <li id="3"><a>Item 3</a></li>
    </ul>
</div>

<h2>Hide</h2>
<div data-role="controlgroup" data-type="horizontal" id="hide">
    <button>1</button>
    <button>2</button>
    <button>3</button>
</div>

<h2>Show</h2>
<div data-role="controlgroup" data-type="horizontal" id="show">
    <button>1</button>
    <button>2</button>
    <button>3</button>
</div>

JavaScript

$("#hide button").click(function(){
    var $el = $(this);
    var index = $el.text();
    $("#"+index).hide();
    refreshNavbar($("#navbar"));
});

$("#show button").click(function(){
    var $el = $(this);
    var index = $el.text();
    $("#"+index).show();
    refreshNavbar($("#navbar"));
});

function refreshNavbar(el) {
    var ul = el.children("ul"),
		childCount = 0, cls, visibleEl,
		children = ul.children("li"),
        clsList = ["ui-grid-solo","ui-grid-a","ui-grid-b","ui-grid-c","ui-grid-d","ui-grid-duo"],
        clsArr = ["ui-grid-solo","ui-grid-a","ui-grid-b","ui-grid-c","ui-grid-d","ui-grid-duo ui-grid-a"];

    for (var i = 0, j = children.length; i < j; i++) {
        child = $(children[i]);
        if ($(child).is(":visible")) {
            childCount++;
        }
    }

    cls = clsArr[childCount-1];
    if (childCount == 1) {
        visibleEl = ul.children("li:visible");
        if (!visibleEl.hasClass("ui-block-a")) {
            visibleEl.addClass("ui-block-a");
        }
    } else {
        ul.children("li").removeClass("ui-block-a");
        ul.children("li:first").addClass("ui-block-a");
    }

    //remove existing grid class
    var rx = new RegExp(clsList.join("|"), "gi");
    var oldCls = ul.attr("class").replace(rx, function (matched) {
        return "";
    });

    //set new grid class, preserving existing custom clases
    ul.attr("class", oldCls + " "+ cls);
}