JSFiddle - React, Tailwind, and code Playground

by Michael Gunderson

HTML

<input type="text" id="firsttest" value="do ANYTHING with me" />
<br/><br/>
Result:<br />
<div id="r"></div>

JavaScript

// Plugin contextDelete:
(function($) {
    $.fn.contextDelete = function(callback) {
        var obj = {
            target: $(this),
            menuOpen: false,
            targetValue: null
        };
        obj.target.bind({
            contextmenu: function() {
                obj.menuOpen = true;
                obj.targetValue = obj.target.val();
                // Hack for IE:
                if ($.browser.msie) {
                    var ieInt = setInterval(function() {
                        if (obj.target.val().length < obj.targetValue.length) {
obj.target.event.trigger($.Events['input']);
                        }
                        if (!obj.menuOpen) {
                            clearInterval(ieInt);
                        }
                    }, 300);
                }
            },
            input: function(e) {
                obj.menuOpen = false;
                callback();
            },
            keypress: function() {
                obj.menuOpen = false;
            }
        });
    };
})(jQuery);

// Example Useage:
$('#firsttest').contextDelete(function(e) {
        $('#r').prepend('You just deleted something! <br />');
});