JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/1.6.5/jquery.contextMenu.min.css">
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/1.6.5/jquery.contextMenu.min.js"></script>
<body data-bind="contextMenu:{disabled:disableMenu}">
    <div class="context-menu-one">Right-Click</div>Disable:
    <select data-bind="value:disableMenu, options:disableOptions"></select>
    <div class="context-menu-one">Also Here</div>
</body>

JavaScript

ko.bindingHandlers.contextMenu = {
    init: function (element, data, allbindings, data) {
        var dynamicDisable = false;
        $.contextMenu({
            selector: '.context-menu-one',
            callback: function (key, options) {
                var m = "clicked: " + key;
                window.console && console.log(m) || alert(m);
            },
            items: {
                "edit": {
                    name: "Clickable",
                    icon: "edit",
                    disabled: function (opt, key) {
                        if (!dynamicDisable) {
                            var node = key.items.edit.$node[0];
                            data.disableMenu.subscribe(function (dis) {
                                $(node)[dis ? 'addClass' : 'removeClass']('disabled')
                            });
                            dynamicDisable = true;
                        }
                        return data.disableMenu();
                    }
                }
            }
        });
    }
};

var vm = (function () {
    return {
        disableMenu: ko.observable(false),
        disableOptions: [true, false]
    };
}());

setInterval(function () {
    vm.disableMenu(!vm.disableMenu());
}, 1800);

ko.applyBindings(vm);