JSFiddle - React, Tailwind, and code Playground

HTML

<b>First Example</b><br />
This will catch:
<li><u>contextmenu delete</u></li>
<li>contextmenu copy</li> 
<li>contextmenu cut</li>
<li>contextmenu paste</li>
<li>CTRL+v</li>
<li>CTRL+p</li>
<li>CTRL+x:</li>
<br />
<input type="text" id="firsttest" value="do ANYTHING with me" />
<br/><br/>
Result:<br />
<div id="r"></div>
<br />
------------------------------------------------------
<br/><br/>
<b>Second Example</b><br />
This will catch: 
<li><u>contextmenu delete</u> only</li> 
<li>feel free to still bind('cut', func....) for example</li>
<br />
<input type="text" id="secondtest" value="ONLY delete something from me" />

<br/><br/>
Result:<br />
<div id="a"></div>
<br />
------------------------------------------------------
<br/><br/>
<b>Third Example</b><br />
This will catch:
<li><u>contextmenu delete</u></li>
<li>contextmenu copy</li>
<li>contextmenu cut</li>
<li>contextmenu paste</li>
<li><b>NOT</b> CTRL+v, CTRL+p, CTRL+x</li>
<br />
<input type="text" id="thirdtest" value="ONLY do ANYTHING from the contextmenu with me" />

<br/><br/>
Result:<br />
<div id="z"></div>

JavaScript

// Plugin contextDelete:
(function($) {
    $.fn.contextDelete = function(options) {
        var set = {
            'obj': $(this),
            'menu': false,
            'paste': false,
            'cut': false,
            'copy': false,
            'set': '',
            'ie': null,
        };
        var opts = $.extend({
            'contextDelete': function() {},
            'paste': function() {},
            'cut': function() {},
            'copy': function() {},
            'allContext': false,
        }, options);

        $(window).bind({
            click: function() {
                set.menu = false;
            },
            keyup: function() {
                set.menu = false;
            }
        });

        set.obj.bind({
            contextmenu: function() {
                set.menu = true;
                set.paste = false;
                set.cut = false;
                set.copy = false;
                set.val = set.obj.val();

                // Hack for IE:
                if ($.browser.msie) {
                    set.ie = setInterval(function() {
                        set.obj.trigger($.Event('input'));
                        if (!set.menu) {
                            clearInterval(set.ie);
                        }
                    }, 300);
                }
                // End IE Hack
            },
            paste: function(e) {
                set.paste = true;
                if (opts.allContext) {
                    if (set.menu) {
                        opts.paste(e);
                        set.menu = false;
                    }
                }
                else {
                    opts.paste(e);
                }
            },
            cut: function(e) {
                set.cut = true;
                if (opts.allContext) {
                    if (set.menu) {
                        opts.cut(e);
                        set.menu = false;
                    }
                }
                else...