JSFiddle - React, Tailwind, and code Playground
HTML
<input type="checkbox" name="check">
<input type="button" onclick="manual_click();" value="Check">
JavaScript
if (!Object.prototype.watch)
Object.prototype.watch = function (prop, handler) {
var oldval = this[prop], newval = oldval,
getter = function () {
return newval;
},
setter = function (val) {
oldval = newval;
return newval = handler.call(this, prop, oldval, val);
};
if (delete this[prop]) { // can't watch constants
if (Object.defineProperty) // ECMAScript 5
Object.defineProperty(this, prop, {
get: getter,
set: setter
});
else if (Object.prototype.__defineGetter__ && Object.prototype.__defineSetter__) { // legacy
Object.prototype.__defineGetter__.call(this, prop, getter);
Object.prototype.__defineSetter__.call(this, prop, setter);
}
}
};
function manual_click() {
$("input[name='check']").prop('checked', true);
}
$(document).ready(function(){
$("input[name='check']").on('change', function(){
alert('check');
});
$("input[name='check']").get(0).watch('checked', function() {
alert('check watched');
});
});