JSFiddle - React, Tailwind, and code Playground
by wolfpackt99
HTML
<input type='button' value='do (shithead)' id='clkBtn' />
<input type='button' value='do (linkAdded)' id='clkAdded' />
<input type='button' value='do (linkOther)' id='clkOther' />
<input type='button' value='remove added bind' id='removeBtn'/>
<div id='container'>
<div id='divListener'></div>
</div>
JavaScript
var dialog = function($) {
var x = {};
var bindings = $(x);
var unbindItem = function(tag) {
console.log('dialog: unbind');
bindings.unbind(tag);
};
var triggerItem = function(tag, data) {
console.log('dialog: trigger');
bindings.trigger(tag, data);
};
return {
unbind: unbindItem,
trigger: triggerItem,
bindings: bindings
};
}(jQuery);
addMethod(dialog, "bind", function(tag, data, callback) {
console.log('dialog: bind 3');
dialog.bindings.bind(tag, data, callback);
});
addMethod(dialog, "bind", function(tag, callback) {
console.log('dialog: bind 2');
dialog.bindings.bind(tag, callback);
});
$(function() {
var x = {
First: 'Trent',
Last: 'Jones'
};
var xOb = $({});
$("#clkBtn").click(function() {
dialog.trigger('shithead', {
someVal: true
});
console.log('clicked shithead');
});
$("#clkAdded").click(function() {
dialog.trigger('shithead.linkAdded', {
someVal: 'wow look at me.'
});
console.log('clicked Added');
});
$("#clkOther").click(function() {
dialog.trigger('shithead.linkother', {
someVal: true
});
console.log('clicked Added');
});
dialog.bind('shithead.linkAdded', {
msg: 'link'
}, function(e, data) {
console.log('custome data: ' + e.data.msg);
console.log('linkAdded: ' + data.someVal);
});
dialog.bind('shithead.linkother', function(e, data) {
console.log('custome data: ' + e.data);
console.log('linkother');
});
$("#removeBtn").click(function() {
dialog.unbind('shithead.linkAdded');
});
});
function addMethod(object, name, fn) {
console.log('adding method ' + name);
var old = object[name];
if (old) object[name] = function() {
if (fn.length == arguments.length) return fn.apply(this,...